社区
C#
帖子详情
如何判断所有子线程已结束?
gnimgnot
2010-05-31 03:42:31
前景提要:
我要操作一个文件型数据库,开了50个线程。
一边从internet获取数据一边insert
但是运行的时候会报数据库被锁,我不知道怎么处理这个问题。
所以想等数据全部取完了存在list里一起insert。
但是又不知道怎么判断子线程已完成任务。
...全文
421
9
打赏
收藏
如何判断所有子线程已结束?
前景提要: 我要操作一个文件型数据库,开了50个线程。 一边从internet获取数据一边insert 但是运行的时候会报数据库被锁,我不知道怎么处理这个问题。 所以想等数据全部取完了存在list里一起insert。 但是又不知道怎么判断子线程已完成任务。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
9 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
gnimgnot
2010-05-31
打赏
举报
回复
[Quote=引用 2 楼 wuyazhe 的回复:]
可以设置标记
或是自定义事件
或是使用Thread的Join方法。
每个线程结束后执行某个方法,方法中累计,如果和开始的线程数一样,就触发一个事件。
[/Quote]
谢谢你的回复。
我想了一下,可以设置一个类变量。然后各个线程来++这个变量,然后触发事件。
但这样的话,主线程岂不是要在一个while(true)里等待事件?
gnimgnot
2010-05-31
打赏
举报
回复
[Quote=引用 7 楼 gomoku 的回复:]
引用 6 楼 cuit 的回复:
引用 4 楼 gomoku 的回复:
另:“操作一个文件型数据库,开了50个线程”很不见得能加快处理,建议先试验和评估。
哦。
我开线程的主要目的是从internet获取数据。
但是又处理不好,获取数据和insert to数据库的关系
因为如果完全获取完了再insert的话
又太占内存了。
是个合理的用多线程的理由。
是否也可以由……
[/Quote]
由线程各自更新数据库会抛出异常
提示 database is locked (sqlite)
我不知道怎么等待解锁了再insert
gomoku
2010-05-31
打赏
举报
回复
[Quote=引用 6 楼 cuit 的回复:]
引用 4 楼 gomoku 的回复:
另:“操作一个文件型数据库,开了50个线程”很不见得能加快处理,建议先试验和评估。
哦。
我开线程的主要目的是从internet获取数据。
但是又处理不好,获取数据和insert to数据库的关系
因为如果完全获取完了再insert的话
又太占内存了。
[/Quote]
是个合理的用多线程的理由。
是否也可以由线程各自更新数据库?
gnimgnot
2010-05-31
打赏
举报
回复
[Quote=引用 4 楼 gomoku 的回复:]
另:“操作一个文件型数据库,开了50个线程”很不见得能加快处理,建议先试验和评估。
[/Quote]
哦。
我开线程的主要目的是从internet获取数据。
但是又处理不好,获取数据和insert to数据库的关系
因为如果完全获取完了再insert的话
又太占内存了。
jiezi316
2010-05-31
打赏
举报
回复
1 定义一AutoEventSet[]
2 等候子线程结束的线程 WaitHandle.WaitAll(AutoEventSet[]),即INSERT线程
3 每个子线程结束设置其对应的AutoResetEvent为终止状态。AutoResetEvent.Set()
解释,当AutoEventSet数组全部为终止状态之前, WaitHandle.WaitAll()始终阻塞,直到全部信号量都为终止状态
gomoku
2010-05-31
打赏
举报
回复
另:“操作一个文件型数据库,开了50个线程”很不见得能加快处理,建议先试验和评估。
zhouxingyu896
2010-05-31
打赏
举报
回复
线程的状态
兔子-顾问
2010-05-31
打赏
举报
回复
可以设置标记
或是自定义事件
或是使用Thread的Join方法。
每个线程结束后执行某个方法,方法中累计,如果和开始的线程数一样,就触发一个事件。
gomoku
2010-05-31
打赏
举报
回复
Thread.Join()
python多
线程
中主
线程
、
子
线程
谁先
结束
,主
线程
结束
是否
子
线程
一定
结束
1、主
线程
可以先于
子
线程
结束
,但仅仅是
结束
(stop状态),主
线程
对象还在; 2、
子
线程
先于主
线程
结束
,
子
线程
对象直接销毁,表现就是threading.enumerate()里没有那个
结束
的
子
线程
对象了 所以,用主
线程
最后一句的...
python 主程序等待
子
线程
_Python多
线程
中主
线程
等待所有
子
线程
结束
的方法
Python多
线程
中主
线程
等待所有
子
线程
结束
的方法发布时间:2020-07-30 14:39:04来源:亿速云阅读:77作者:小猪这篇文章主要讲解了Python多
线程
中主
线程
等待所有
子
线程
结束
的方法,内容清晰明了,对此有兴趣的小伙伴...
所有
子
线程
全部
结束
的
判断
多
线程
编程常遇到,主
线程
要等所有
子
线程
全执行完后,主
线程
才开工的情况。 如 何
判断
所有
子
线程
都执行
结束
: ... 把所有的
子
线程
放到列表中,再去
判断
每一个
线程
状态。 List<Thread> arr = ne...
主
线程
Main先
结束
还是
子
线程
先
结束
?
今天在复习并发基础的时候,发现一个很有意思的问题,到底是主
线程
Main先
结束
呢,还是
子
线程
先
结束
呢?这个主要分为两种情况,让我们来看一下。 情况一:没有设置
子
线程
为守护进程 public class Thread3 { public ...
主
线程
创建
子
线程
,如果
子
线程
不
结束
,主
线程
会
结束
吗?
如果执行到了main end 这里,main方法就
结束
...答案是:
子
线程
不
结束
,主
线程
该
结束
的时候还是会
结束
,除非主
线程
是守护
线程
。 a
线程
创建b
线程
, 如果a
线程
不是守护
线程
,那么实际上a 和b两个
线程
没有必然联系。 ...
C#
110,534
社区成员
642,575
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章