问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

java 开启多线程里面如何加条件判断执行其他逻辑?

发布网友 发布时间:2022-04-29 22:32

我来回答

1个回答

热心网友 时间:2022-06-24 15:47

package test; import java.util.concurrent.CountDownLatch;import java.util.concurrent.Executor;import java.util.concurrent.Executors; public class WatchThread { public void testThread() throws InterruptedException {int threadNum = 10;// 初始化countDownCountDownLatch threadSignal = new CountDownLatch(threadNum);// 创建固定长度的线程池Executor executor = Executors.newFixedThreadPool(threadNum);for (int i = 0; i < threadNum; i++) { // 开threadNum个线程Runnable task = new TestThread(threadSignal);// 执行executor.execute(task);}threadSignal.await(); // 等待所有子线程执行完// do workSystem.out.println(Thread.currentThread().getName() + "");} /*** 测试函数*/public static void main(String[] args) throws InterruptedException {WatchThread test = new WatchThread();test.testThread();} private class TestThread implements Runnable {private CountDownLatch threadsSignal; public TestThread(CountDownLatch threadsSignal) {this.threadsSignal = threadsSignal;} public void run() {System.out.println(Thread.currentThread().getName() + "开始...");// do shomethingSystem.out.println("开始了线程::::" + threadsSignal.getCount());// 线程结束时计数器减1threadsSignal.countDown();System.out.println(Thread.currentThread().getName() + "结束. 还有"+ threadsSignal.getCount() + " 个线程");}} }
Java 多线程中,我如何让开着的多线程执行完一批任务后 在继续执行另一...

设置一个计数器,每个线程执行完后计数器加一然后查看计数器是否已满(任务都完成),没有的话就阻塞,是的话就唤醒其他所有线程,大家一起来执行下一次任务。要注意公用的计数器的线程安全!

Java多线程之ThreadPoolExecutor原理(图文代码实例详解)

privatebooleanaddWorker(RunnablefirstTask,booleancore){retry:for(;;){intc=ctl.get();intrs=runStateOf(c);//Checkifqueueemptyonlyifnecessary.if(rs&gt;=SHUTDOWN&amp;&amp;//第一个条件:线程至少不是运行状态,那么就是shutdownstoptidying,terminated状态!(rs==SHUTDOWN&amp;&amp;firstTask==null&amp;&amp;!workQueue.isEmpty()))//第...

如何判断java多线程是否全部执行完了,并计

1: 创建线程池 ExecutorService cachedThreadPool 2: 开启一个线程 cachedThreadPool.execute(new Runnable() {//做任务})3.: 判断线程池里面是否执行完, cachedThreadPool.isTerminated()while (true) { if (cachedThreadPool.isTerminated()) { // 计算耗时 long time = System.currentTime...

JAVA项目中哪些场景需要用到多线程,深感迷茫,请使用过的高手指点。_百...

场景一:一个业务逻辑有很多次的循环,每次循环之间没有影响,比如验证1万条url路径是否存在,正常情况要循环1万次,逐个去验证每一条URL,这样效率会很低,假设验证一条需要1分钟,总共就需要1万分钟,有点恐怖。这时可以用多线程,将1万条URL分成50等份,开50个线程,没个线程只需验证200条,这样所...

条件变量和信号量的区别

条件变量 条件变量使在多线程程序中用来实现“等待---&gt;唤醒”逻辑常用的方法,是进程间同步的一种机制。条件变量用来阻塞一个线程,直到条件满足被触发为止,通常情况下条件变量和互斥量同时使用。一般条件变量有两个状态:①一个/多个线程为等待"条件变量的条件成立"而挂起;②另一个线程在"条件变量条件...

java中,多线程中,有没有可能当一个线程执行一半时候,另一个线程又开始...

在旧的单处理器系统中,各个线程只是占用处理器的一段时间片,因此不会出现一个线程运行到一半的时候,另一个线程又开始。但是,现在的机器一般都是多处理器系统,实现了真正的并行运行,因此这种情况肯定是会发生的。

java,if else和if else if else区别?

1、if-else是双分支结构 if-else 语句表示"如果条件正确则执行一个操作,否则执行另一个操作"。当条件表达式为真时,执行语句块1,否则,执行语句块2。也就是else部分。代码示例:int a=5;intb=6;if(a&gt;b){ return a;}else{ return b;} 2、if-else if-else是多分支选择结构 if-else if-...

JAVA多线程之ArrayBlockingQueue看Condition的实现

ConditionObject中await实现主要步骤:1.创建一个新建等待节点加入条件等待队列2.释放所有锁(即重置state变量为0)3.判断node是否在CLH双端等待队列中,如果不在则直接LockSupport.park阻塞线程,r然后检查是否中断4.如果CLH的等待队列中,则通过CLH队列中获取锁,5.如果node的nextWaiter不为空,则表示有新的...

JavaNIOReactor网络编程模型的深度理解

每当处理完所有就绪的IO事件后,Reactor线程会再次执行select()操作阻塞等待新的事件就绪并将其分派给对应处理器进行处理。 该模式中,Handler处理时除了read和send调用之外的其他业务逻辑都是多线程执行的,这样就可以让Reactor线程更快的进行下一轮的select操作,提升了对于请求的IO响应速度,不至于因为一些耗时的业务逻辑而...

深入理解Java线程

线程更轻量级,线程的上下文切换成本比进程上下文切换成本低 进程间的通信比较复杂,线程之间的通信比较简单比如共享进程内的内存 进程是操作系统资源分配的最小单位,线程是操作系统线程调度和执行的最小单位,而线程归属于进程 问题: 四种线程同步互斥的控制方法 临界区: 通过对多线程的串行化来访问公共资源或一段代码,速...

java多线程并行执行方法 java多线程执行任务 java实现多线程并发执行 java多线程处理多个文件 java多线程并行处理 java保证线程池全部执行 java线程池顺序执行 java 多线程实例 java多线程详解
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
沈阳浑南烧烤的地点在哪里? 浑南烧烤饭店都有哪些推荐? 沈阳浑南区的烧烤都有哪些优势亮点? 请问这是鲫鱼鲤鱼还是草鱼?如何区分? 大灾变狼人我到底选哪个职业好呢? 请教台服大灾变前夕德鲁伊天赋加点 玩过台服的兄弟们,说说4.2鸟德和野德PVP怎么样!!! 大灾变玩牧师好还是德鲁伊好啊? 台服小德练级点什么天赋? 大灾变小德玩什么天赋好 QQ飞车里有哪些极品宠物、排列一下。谢谢 QQ飞车里,目前实战中最好的竞速宠物是哪个? 如何查看qq飞车手游2020宠物排行榜? java启动一个线程是用run()还是start()?run()和start()的区别? 我有特别好的项目,怎样才能快些找到投资方! 怎么才能找到投资人,如何能够快速找到投资人? 如果有好的项目怎么样能很快找到投资人? 到现如今,投资小且回报周期快的投资一般有什么? 自主创业中,如何快速寻找投资人? 如何快速有效的寻找投资 创业公司需要具备什么样的条件才能快速地找到投资? 怎么用聚好看玩云游戏? 海信电视的聚好看有线电视功能好用吗,有用过的说一下吗? 聚好看能K歌吗?具体怎么用? 聚好看的少儿模式怎么用? 想用聚好看K歌怎么操作? 范仲淹在岳阳楼记中有一句话与季子文的以节俭立身做法吻合是那句话? 范仲淹是如何先天下之忧而忧? 范仲淹苦读表现了范仲淹哪些性格特点 范仲淹的故事读后感400字。 QQ飞车宠物飞火龙在宠物排行榜里排第几 java程序启动至少启动几个线程? qq飞车什么宠物最好 QQ飞车那些宠物最厉害? Java中在线程中再开线程,可以么 QQ飞车里什么宠物最好 QQ飞车里面的极品宠物排名!要绝版的! java一个线程中开启另一个线程如何通信 QQ飞车里最好的宠物是什么? 辣菜能炒牛肉吗 牛肉白菜怎么做啊 洋白菜炒牛肉好吃吗 强无敌,牛肉炖白菜的做法有哪些 不辣的牛肉白菜炒年糕怎么做好吃又简单 哪种速溶的胡辣汤好喝? 胡辣汤是什么味道 河南胡辣汤要搭配什么才好吃,哪里可以吃到正宗的河南胡辣汤? 方中山胡辣汤闪老大胡辣汤哪个好 郑州哪的胡辣汤好吃~~~ 胡辣汤什么牌子最正宗