多个线程池的管理

cc256288 2017-07-25 10:13:09

我这里的这个类会多次调用,这样的话会创建多个线程池,而每个线程池里又有多个线程,我想知道的是多个线程池他们的运行状态是怎么样的,也就是说这多个线程池是只有一个处于running的状态还是会有多个都处于running状态,如果多个处于running状态的话同一时间会有多个线程池中的线程在向cpu请求资源,这样的话这些线程又是怎么管理的。谢谢了
...全文
652 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
小姜戈 2019-02-22
  • 打赏
  • 举报
回复
一般多线程的执行不仅受执行的先后顺序影响,还受获取cpu时间片的调度的影响,所以一般都是不安全,也就是乱序,每次执行都可能不一样,为了控制住我们编写的程序,所以我们给他加synchronize关键字加锁,加锁之后他就按照你程序的先后顺序执行,也就是现场安全的。
我爱兔宝宝 2017-07-27
  • 打赏
  • 举报
回复
1. 多个线程池之间相互独立互不影响 2. 多个线程执行时, CPU根据时间片进行调度,时间片使用完毕或者主动让出CPU的线程,让出CPU,其它线程使用CPU
  • 打赏
  • 举报
回复
多线程在java中很普片,你可以建一个线程组。在每次去调用数组里面的线程
soton_dolphin 2017-07-25
  • 打赏
  • 举报
回复
引用 2 楼 cc256288 的回复:
[quote=引用 1 楼 soton_dolphin 的回复:] 这个线程池的线程是有上限的,如果需要执行的线程低于这个上限,那么每个线程会处于可执行状态,具体什么时候执行,要看cpu的算法。如果需要执行的线程找过了这个上限,那么超出的线程会被executorService 放到一个队列中,等待运行中的线程结束才会被提交执行
谢谢你的回答,这多个线程池中的线程的执行有先后顺序吗,比如线程池1比线程池2先创建,是先将线程池1中的线程都执行完再执行线程池2种的线程,还是是并行的 [/quote] 线程池没有顺序,但是每个线程池里提交的线程是有顺序的,先到先提交
cc256288 2017-07-25
  • 打赏
  • 举报
回复
引用 1 楼 soton_dolphin 的回复:
这个线程池的线程是有上限的,如果需要执行的线程低于这个上限,那么每个线程会处于可执行状态,具体什么时候执行,要看cpu的算法。如果需要执行的线程找过了这个上限,那么超出的线程会被executorService 放到一个队列中,等待运行中的线程结束才会被提交执行
谢谢你的回答,这多个线程池中的线程的执行有先后顺序吗,比如线程池1比线程池2先创建,是先将线程池1中的线程都执行完再执行线程池2种的线程,还是是并行的
soton_dolphin 2017-07-25
  • 打赏
  • 举报
回复
这个线程池的线程是有上限的,如果需要执行的线程低于这个上限,那么每个线程会处于可执行状态,具体什么时候执行,要看cpu的算法。如果需要执行的线程找过了这个上限,那么超出的线程会被executorService 放到一个队列中,等待运行中的线程结束才会被提交执行

62,615

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧