2016 - 2024

感恩一路有你

启动一个线程主要用什么方法 c#task可以启动多少个线程?

浏览量:2280 时间:2023-09-27 11:47:07 作者:采采

c#task可以启动多少个线程?

一个进程可以再开启的线程受用下内存限制,要是是32位的机器,那你设置为一个进程有2G的用些内存,而每个线程设置为讲1M的栈空间,所以我那种情况下肯定不行最线程数在2000多个。一个解决的办法是创建战队线程时减少线程栈的大小又或者可以使用64位的系统。64位系统应该要也可以遗漏掉这个问题了。肯定受cpu及磁盘速度及物理内存的限制。你不可以到达上限值,你的机器应该早就是慢如牛车了。

C#中,怎样开启一个线程,检测程序运行,如果运行成功就跳出,没的成功就继续检测?

不是太很清楚你的需求,你线程假如不必须停止,在每个线程里都用while(true)之类的死停止循环就可以了,循环中假如需要停止一些时间可以用restless之类的来再继续一段时间。

如何让A、B两个线程依次执行?

是对线程并行通信的问题,Java可以提供了几个方案可供选择。先定义,定义A、B两个线程:

方案一:使用Thread类的join方法Thread的join方法是指阻塞主线程,让当前线程负责执行完再让CPU时间片执行主线程。这样上面定义的A、B两个线程要让A负责执行完之后再负责执行B,只是需要()即可解决。如下:

()

try{

(3000)//这里如何填写的超时时间可以省略,详细意义可一一去查询。也可可以使用()

}catch(InterruptedExceptione){

()

}

()

方案二:使用Executors来做任务调度同时根据上列定义的A、B两个线程,要在A不能执行完之后再负责执行B,线程不紊乱,建议使用Executors类的静态动态方法future一个单线程的队列进去,将A、B两个任务放进里面两次先执行。具体代码如下:

ExecutorServiceexeService()

(A)

(B)

()

方案二比方案一要优雅。并且依据join方法的底层实现程序,建议使用了Thread的wait的framework方法来不能执行再等待,所以我原则上也这个可以使用Thread的wait方法来不能执行静静的等待故此实现程序A、B线程的依次执行。但Java官方不个人建议不使用wait、notify方法,就按照官方规范吧。

版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。