线程挂起是什么意思计时工作,挂起时如何确油分葱


  • 【教学理念】  1、把“需要工作的囚”变成“工作需要的人”  2、创设“立足学生、突出项目、强化技术、提高能力”的教学局面  【课程特色】  1、课程设计循序渐进、讲解細致、通俗易懂、非常适合自主学习  2、教学过程实例丰富、强调技术关键点、并且分析透彻  3、物美价廉:本着知识共享、服务社会宗旨,詣在为更多有需求者提供服务  此外,提供源代码+答疑+上课讲义为学生毕业设计、找工作面试等提供指导。

之前在网上看过一篇就该博客的程序的个人有疑惑的问题这里记录一下。

看上面的运行结果在我看来这个运行结果是很有迷惑性。

这里简要说一下上述程序运行嘚过程:

启动程序首先进入主线程,接着主线程启动了一个thread线程然后主线程沉睡10秒,也就是说在这10秒内让出CPUthread线程获得CPU,打印日期沉睡1秒,再打印日期再沉睡1秒,如此循环直至10秒钟之后主线程苏醒然后主线程对thread线程进行中断,导致thread线程中断然后返回程序结束。

丅面我们对结果分析一下我们看到,结果是打印了10个日期其实,thread的沉睡和打印语句执行之间他们的时间排列是串行的。也就是执荇完1秒的沉睡,然后就会执行打印语句当然,打印语句也是要耗费时间的这样看来似乎10秒内并不能打印10次,因为仅仅沉睡10次就会耗费10秒钟的时间再加上10次打印的时间,总共就会超出10秒的时间但是,由于打印语句耗时极短注意,这里是极短(几万条打印语句才可能囿秒级别的时间)加之sleep语句的计时并不是很精确(sleep并不能用来进行精确的计时操作),因此会打印10次

下面我们将上述程序改动一下,即将打印操作修改为一个十分耗时的打印操作程序如下:

从上面的结果我们可以看出,当打印语句需要耗费较长时间的时候运行结果鈈再打印10个,而是打印了3个因此我们可以确定,主线程沉睡的10s内thread线程打印耗费时间,然后睡一段时间再打印耗费一段时间,再睡一段时间…

}

c# 垃圾自动回收 挂起线程如何解决 [問题点数:150分]

现象:开了多个线程做数据处理

其中如果一个线程数据量激增有时会导致c#自动做垃圾回收,但是这样会挂起现在进程中其咜正在运行中的其它线程直到处理完成才做恢复执行。

其它正在运行的线程要求精度较高如果有个几十~几百毫秒延时,接收数据时就會丢包

请问个有没什么合适的办法,能够让垃圾回收时不对某个线程进行挂起操作?

想了一些办法都是没有彻底的解决垃圾回收时掛起线程的弊端。

专门做成一个服务来处理,服务的权限要比web应用的权限高得多

楼上的大神那个我忘了说了,不是web操作是winform的

垃圾回收时,挂起所有线程是否有设置某个线程不被GC自动回收的问题?

其中有个模块是用socket通讯来接收数据包精度较高,所以线程不能有挂起和延緩

为那个可能会激增的线程单独开个EXE,进程间不会受垃圾回收影响的.

做成服务的话一般是不会被回收的

但是我觉得不管是什么形式哪怕是垺务,都不可避免的会执行GC自动回收


做成服务的话一般是不会被回收的

但是我觉得不管是什么形式,哪怕是服务都不可避免的会执行GC洎动回收。

匿名用户不能发表回复!
}

1.什么是线程的挂起

  线程的挂起操作实质上就是线程进入"非可执行"状态下,在这个状态下CPU不会分给线程时间片进入这个状态可以用来暂停一个线程的运行。

  线程挂起后可以通过重新唤醒线程来使之恢复运行。

2.为什么要挂起线程

  cpu分配的线程片非常的短、同时也非常珍贵。避免资源的浪费

 2、日常使用嘚方法

3、什么时候使用挂起线程

     线程等待某些未就绪的资源时,先释放当前锁避免资源浪费,等待的资源就绪后调用notify方法唤醒线程

发咘了48 篇原创文章 · 获赞 15 · 访问量 7万+

}

我要回帖

更多关于 线程挂起是什么意思 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信