ThreadPool内的线程能不能再另开非池内的线程?

问题描述

如题

解决方案

解决方案二:
为什么不可以呢?一个试验就知道了。
解决方案三:
可以……但不安全,可能会无限挂起。
解决方案四:
可以。
解决方案五:
引用3楼blestcc的回复:

可以。

依据?
解决方案六:
引用楼主chnking的帖子:

如题

/*插入测试数据useridreasonmoneyupdatetime100011002003-01-0111:00:00.000100012002003-01-3113:23:00.00010001-502003-02-0123:59:59.00010001-502003-03-0100:00:00.000*/
解决方案七:
测试一下就知道
解决方案八:
mark
解决方案九:
publicclassThreadBase{publicstaticvoidMain(){System.Threading.WaitCallbackwaitCallback=newWaitCallback(MyThreadWork);ThreadPool.QueueUserWorkItem(waitCallback,"第一个线程");ThreadPool.QueueUserWorkItem(waitCallback,"第二个线程");ThreadPool.QueueUserWorkItem(waitCallback,"第三个线程");ThreadPool.QueueUserWorkItem(waitCallback,"第四个线程");Console.ReadLine();}publicstaticvoidMyThreadWork(objectstate){Console.WriteLine("线程现在开始启动……{0}",(string)state);Thread.Sleep(10000);Console.WriteLine("运行结束……{0}",(string)state);}}测试看看
解决方案十:
引用2楼hikaliv的回复:

可以……但不安全,可能会无限挂起。

支持这种说法,最好不要那样做。
解决方案十一:
up

时间: 2024-11-21 01:38:21

ThreadPool内的线程能不能再另开非池内的线程?的相关文章

定制并发类(六)自定义在计划的线程池内运行的任务

声明:本文是< Java 7 Concurrency Cookbook>的第七章, 作者: Javier Fernández González 译者:郑玉婷 自定义在计划的线程池内运行的任务 计划的线程池是 Executor 框架的基本线程池的扩展,允许你定制一个计划来执行一段时间后需要被执行的任务. 它通过 ScheduledThreadPoolExecutor 类来实现,并允许运行以下这两种任务: Delayed 任务:这种任务在一段时间后仅执行一次. Periodic 任务:这种任务在延

主线程等待子线程运行结束再完成的效果如何实现

问题描述 主线程抛出一个子线程异步处理一些东西,这时主线程要等待子线程运行完成再完成(其实我是为了统计运行时间的).这里抛出的子线程可能递归的调用自己,就是再抛一个他的子线程出来,但是到底一共抛多少,事先是不知道的.应用场景:1)多线程扫描文件夹内的文件,遇到文件夹内有子文件夹,要递归调用扫描线程的,等到全部扫描完成后,返回结果,显示:2)多线程快速排序,第一次肯定是单线程的,第一次排序完成后,会分两半,这两半多线程排,递归调用了这个排序线程,这两半很有可能,极大有可能再各分两半,也就是会有4个

多线程-疑问:线程启动之后再设置线程的优先级别,逻辑上是不是有问题?

问题描述 疑问:线程启动之后再设置线程的优先级别,逻辑上是不是有问题? 正在学习多线程,有这样一个疑问:线程启动之后再设置线程的优先级别,逻辑上是不是有问题?求助大神们解答下. 解决方案 没啥问题,相当于动态调整线程优先级.因为线程优先级是影响CPU调度优先级,你修改了,就可以影响下一次CPU的选择.所以可以启动再修改. 解决方案二: 没有问题,但是要注意,如果你启动的时候创建的是实时优先级,那么可能更改优先级的代码得不到及时执行. 解决方案三: 现代操作系统都是多任务抢占式操作系统,系统会随时

多线程-使用多个线程池还是一个线程池

问题描述 使用多个线程池还是一个线程池 最近在技术理论上遇到一个问题,不知道怎么解决. 问题描述:我们交易平台有4个商品(A.B.C.D)需要进行现在交易,交易的核心方法dealorder是 一个加了锁和事务的方法,而且该类是针对每一个商品的,即最多同时可以执行4个dealOrder方法,即每个商品执行一个该方法. @Transactional public synchronized Message dealOrder() CPU核心数是固定的,假如为6核心,目前就存在一个问题, 情况1:假如说

C#实现控制线程池最大数并发线程_C#教程

1. 实验目的:       使用线程池的时候,有时候需要考虑服务器的最大线程数目和程序最快执行所有业务逻辑的取舍. 并非逻辑线程越多也好,而且新的逻辑线程必须会在线程池的等待队列中等待 ,直到线程池中工作的线程执行完毕, 才会有系统线程取出等待队列中的逻辑线程,进行CPU运算. 2.  解决问题:      <a>如果不考虑服务器实际可支持的最大并行线程个数,程序不停往线程池申请新的逻辑线程,这个时候我们可以发现CPU的使用率会不断飙升,并且内存.网络带宽占用也会随着逻辑线程在CPU队列中堆

如何结束线程池中的线程.

问题描述 我创建了一个线程调用scheduleAtFixedRate()方法Executors.newScheduledThreadPool(1).scheduleAtFixedRate(newRunnable(),1,1,TimeUnit.SECONDS);如果把它结束掉? 解决方案 解决方案二:每个线程都有ID标示遍历线程池找到对应线程把它destroy了

线程超时控制问题,怎么实现非阻塞线程超时

问题描述 线程超时控制问题,怎么实现非阻塞线程超时 使用该线程池方式实现超时管理,必须等待线程运行完毕 时阻塞式的 非阻塞式的怎么实现? 解决方案 http://ifeve.com/boundlesscyclicbarrier/ 参考这个

线程执行者(三)创建一个大小固定的线程执行者

创建一个大小固定的线程执行者 当你使用由Executors类的 newCachedThreadPool()方法创建的基本ThreadPoolExecutor,你会有执行者运行在某一时刻的线程数的问题.这个执行者为每个接收到的任务创建一个线程(如果池中没有空闲的线程),所以,如果你提交大量的任务,并且它们有很长的(执行)时间,你会使系统过载和引发应用程序性能不佳的问题. 如果你想要避免这个问题,Executors类提供一个方法来创建大小固定的线程执行者.这个执行者有最大线程数. 如果你提交超过这个

代码-求助各位大神LIstfragment中,分线程获取数据后刷新界面崩溃,用分线程加载数据后

问题描述 求助各位大神LIstfragment中,分线程获取数据后刷新界面崩溃,用分线程加载数据后 如题:代码如下,要在viewpager中的一个fragment中加载一个listview,用分线程加载数据后,handleMessage给成员变量的集合赋值后,notify,会直接崩溃 /** 报警图片 */ public class AlarmPhotoFragment extends ListFragment { private int mType = 0; private ListView