社区
Java SE
帖子详情
多线程操作
iiarchitecture
2009-07-21 11:50:30
我有个需求 就是在程序中新起一个线程调用方法a,在a执行的过程中,主线程轮询一个flag b ,如果b是true则结束掉线程a ,如果b一直是false,则让a执行完。
因为方法a的code是不能改的,所以我认为这个需求,不能用线程的interrupt()实现 ,因为没有办法在a方法中加入控制推出的轮询操作。
所以是不是必须用concurrent库呢?,如果这样的话用哪个类比较好呢?
谢谢 高手指教!
...全文
171
4
打赏
收藏
多线程操作
我有个需求 就是在程序中新起一个线程调用方法a,在a执行的过程中,主线程轮询一个flag b ,如果b是true则结束掉线程a ,如果b一直是false,则让a执行完。 因为方法a的code是不能改的,所以我认为这个需求,不能用线程的interrupt()实现 ,因为没有办法在a方法中加入控制推出的轮询操作。 所以是不是必须用concurrent库呢?,如果这样的话用哪个类比较好呢? 谢谢 高手指教!
复制链接
扫一扫
分享
举报
写回复
配置赞助广告
用AI写文章
4 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
Clarity-Black
2009-07-22
打赏
举报
回复
主线程:
public void run(){
while(true){
//循环查看b的值,当b为true时,结束线程a,将线程a的阀值stat设置为false
if(b) {
stat = false;
}
}
}
a线程:
public void run(){
while(true){
//stat为false时,线程结束
if(!stat) break;
}
}
老张-AI
2009-07-22
打赏
举报
回复
关注
flyxxxxx
2009-07-22
打赏
举报
回复
java中止线程只有两种方式:interrupt、让线程自己控制执行完成(也就是它自己退出run方法)
你这里的方法a不是一个线程,只是线程中的代码段,还不能去修改代码,显然做不到。
clihean
2009-07-22
打赏
举报
回复
是要结束线程a还是方法a,方法a不可以,线程a是你写的可以结束。
Java
多线程
和
操作
系统
多线程
关系
这篇文章要讨论的是Java编程中的
多线程
和
操作
系统中的
多线程
的区别问题。 线程状态。首先两者的线程状态是一样的。(创建、就绪、执行、阻塞、终止),其实这五个状态也是进程的状态。 那么Java中的
多线程
和 OS中的
多线程
的区别在哪里? 我们先来看下OS中的线程实现 OS中线程的实现有三种,一种是用户级线程ULT(UserLevelThreads),一种是内核支持线程KST(Kern...
【
多线程
】
多线程
基础
操作
想让线程结束,只需在 catch 中加上 break。当引入的线程到达一定数量后在尝试继续引入新的线程无法提升,当线程数量太多的时候,线程之间就会相互竞争CPU的资源(CPU核心数有限)非但不会提高效率,反而增加调度开销。
操作
系统进行"多任务调度"本质上是在调度PCB(线程在系统中的调度规则就和之前的进程是一样的,线程的PCB中也有状态,优先级,上下文,记账信息…5.每个线程,也是一个独立的执行流,可以执行一些代码,并且单独的参与到CPU调度中(状态,上下文,优先级,记账信息,每个线程都有自己的一份)
SQLite
多线程
并发
操作
SQLite
多线程
并发
操作
先理清楚一个概念
多线程
操作
和多数据库连接
操作
是不同的概念
多线程
操作
:
多线程
操作
数据库时可以使用一个数据库连接,也可以每个线程使用各自的数据库连接 多数据库连接
操作
:即每个数据库
操作
使用的是各自的数据库连接 SQLite默认情况下只支持单个数据库连接
操作
,多连接并发
操作
时会出问题,需要开启wal模式才能进行多项城并发读
操作
,写
操作
仍能不可以并发。 ...
Qt
多线程
操作
sqlite数据库
通过锁解决了sqlite数据库
多线程
操作
的写冲突和读写冲突,锁是有消耗的,但很小,我实测6-19ms,这个消耗算是可以了。
多线程
操作
sqlite数据库,关键之处就是在于加锁,保存同时只有一个写的
操作
;读的
操作
是可以并发的;有写的
操作
,读的
操作
也必须等待,可以说,同时只有一个写
操作
,无其它
操作
,通过锁就达到了这一个目的。如果一个线程正在写,另一个线程也要写,怎么办,锁就会让另一个线程等待前一个线程写完,自己再写。锁的本质意义就是保证了,锁的区域,只有一个写线程在访问,而读的线程,可以并发。
多线程
下的IO
操作
今天考虑优化项目中文件
操作
,项目中有许多批量删除文件的
操作
,当文件很多时,删除
操作
会比较费时(1s~2s的时间也显得有点慢了),更何况10s以上,想要通过
多线程
来同时处理多个文件的删除,在程序中使用了ThreadPool和Parallel想要加速删除,但是效果并没有预期的明显,总耗时甚至还有所提升。 先看使用普通循环删除目录的代码: var dir = Directory.GetDirectories("D:\\FileStore1\\", "", SearchOption.TopDirectoryOnl
Java SE
62,620
社区成员
307,251
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章