多线程 段错误错误,初学者求助

2005年6月 VC/MFC大版内专家分月排行榜第三
2008年6月 Oracle大版内专家分月排行榜第三2008年3月 Oracle大版内专家分月排行榜第三2002年11月 VC/MFC大版内专家分月排行榜第三
本帖子已过去太久远了,不再提供回复功能。查看: 1209|回复: 5
关于线程问题
阅读权限10
在线时间263 小时
当前用户组为 梦之起当前积分为 150, 升到下一级还需要 50 点。
主题精华积分
本帖最后由 yin4413617 于
23:57 编辑
如果我想对一个线程做手脚,比如让这个线程处于一直等待模式,因为本身已经睡眠了,有多少种方法能异步或是延时的检测这个线程被动了手脚呢?
自己想到的方法:另一个线程来检测,DPC定时器检测,WorkQueueThread检测,还有别的什么方法吗?
另外线程池是不是也能用来检测?它和WorkQueueThread是什么关系?& &&&有没有那个书上有详细的资料
阅读权限200
在线时间3795 小时
当前用户组为 坛主当前积分为 1502, 该用户为特殊用户。
主题精华积分
这个检测办法太多了。
线程和外部通信、线程切换次数、运行时间等等。
还有线程内核对象内部有记录当前线程在哪些对象上等待着。
我一定是见鬼了!
阅读权限10
在线时间263 小时
当前用户组为 梦之起当前积分为 150, 升到下一级还需要 50 点。
主题精华积分
本帖最后由 yin4413617 于
00:34 编辑
这个检测办法太多了。
线程和外部通信、线程切换次数、运行时间等等。
还有线程内核对象内部有记录当前线 ...
嗯&&对这些检测的地方肯定是有控制流的,我是在想这些个控制流都可能会出现在哪些地方?比如另一个线程,DPC定时器等
阅读权限200
在线时间3795 小时
当前用户组为 坛主当前积分为 1502, 该用户为特殊用户。
主题精华积分
当然是其他线程检测了。
可能是定时器,可能是内核线程,可能是用户层线程+设备驱动。
我一定是见鬼了!
阅读权限10
在线时间263 小时
当前用户组为 梦之起当前积分为 150, 升到下一级还需要 50 点。
主题精华积分
当然是其他线程检测了。
可能是定时器,可能是内核线程,可能是用户层线程+设备驱动。
梦大& & 线程池和WorkQueueThread的详细资料哪些书上有?&&是不是也能作为控制流?
阅读权限200
在线时间3795 小时
当前用户组为 坛主当前积分为 1502, 该用户为特殊用户。
主题精华积分
线程池很多网络书籍上有资料,工作队列线程操作系统相关书籍上就有说明。
不过检查这玩意儿还用不上这种高大上的东西。
我一定是见鬼了!
Powered by线程总结(适合初学者)
时间: 23:19:52
&&&& 阅读:137
&&&& 评论:
&&&& 收藏:0
标签:&&&&&&&&&&&&&&&线程1.进程(Process)进程通常可以理解为正在运行的程序,有自己独立的内存空间,有操作系统负责分配资源,例如:CPU的调度。多个进程可以并发执行。对于单个CPU,并发从宏观上理解是在同时执行,但是在微观上是顺序执行。2.线程(Thread)线程是进程中的一个顺序执行流(一个线程执行多个任务时,这多个任务是顺序执行的),一个进程可以启动多个线程,多个线程可以共享资源并发执行。3.线程对象的创建在java中所有的线程对象的类型为Thread类型,我们创建线程的方式通常有两种:1)创建Thread类的子类对象,重写Thread类的run()方法,并在run方法中执行任务。2)创建Runnable接口或者Callable接口的子类对象,重写run()或call()方法,作为线程的任务。4.两种创建方式的优缺点:1)采用继承Thread类的方式创建:a.缺点:因为线程已经继承了Thread类,所以不能再继承其他父类。b.优点:编写简单,如果需要访问当前线程,则无需使用Thread.currentThread()方法,直接使用this即可获得当前线程。2)采用Runnable、Callable接口方式创建:a.线程类只是实现了Runnable接口或Callable接口,还可以继承其他类。b.在这种方式下,多个线程可以共享同一个target对象,所以非常适合多个线程来处理同一份资源的情况,从而可以将CPU、代码和数据分开,形成清晰的模型,较好地体现了面向对象的思想。说明:线程对象创建以后不会自动执行,需要调用Thread类的实例方法start()方法启动线程,线程启动以后,如果获得了CPU会自动执行run()方法。而且当我们启动线程以后不一定会立刻执行此线程。5.线程对象的状态及相关方法的应用1)新建状态(new Tread)2)就绪状态(可运行状态):start()3)运行状态(正在执行run方法)4)阻塞状态(线程不可获得CPU)sleep(),interrupt()5)死亡状态(线程已经运行结束)6.线程中常用的方法1)构造方法(重要,参考第3条)2)setName(String name):给线程命名3)currentThread():获得当前线程4)getName():得到线程的名字5)start():启动线程,线程处于就绪状态6)run():在此方法执行业务逻辑,此时线程线程处于运行状态(不会直接调用)7)sleep() :线程让出cpu处于阻塞状态,休眠(静态方法)8)interrupt():唤醒正在休眠的线程,被唤醒的线程处于就绪状态9)join():调用此方法的线程优先执行,其他线程处于阻塞状态&10)setDaemon(boolean flag):当flag的值为true时,表示设置此线程为守护线程(精灵线程),可以将守护线程理解为服务性线程。当没有其它线程在执行时,守护线程会自动销毁。(必须放在start())11)yeild():让出cpu,不会阻塞线程,线程处于就绪状态(静态方法)12)isAlive():判断这个线程是否还活着7.线程的同步所谓线程同步通常可以理解为,多个线程在共享数据集上的互斥和协作。1)线程同步的作用:a.保证线程安全(数据的安全)。b.保证数据的合理性。2)线程的互斥:a.多个线程在共享数据集上排队执行。b.如何实现:在共享数据集所在的代码块上添加一把锁,这个锁通常称之为对象锁。获得锁的线程对象优先执行,其他线程等待。当获得了对象锁的线程执行完代码块会释放锁,其他线程竞争锁,然后执行代码块。3)代码中的应用(线程同步的方法):a.同步代码块synchronized (对象锁) {&& 被锁的共享数据集}&&&&&&&&&& b. 同步方法(默认同步锁)public synchronized void sale(){&& 被锁的共享数据集对象锁默认为}public static synchronized &oid sale(){&& 被锁的共享数据集对象锁默认为类对象(例如TicketTask.class)& }c.同步锁(lock):可以具有比上述两种方法更灵活的结构private& eentrantLock& lock = lock& ReentrantLock();lock.lock();………………lock.unlock();说明:我们使用加锁的方式实现了线程的互斥,保证了数据的安全,但同时也会降低系统的执行效率,所以在一些线程安全的环境下尽量不要使用同步代码块或同步方法。8.类的加载:Point p=new Point();1)加载类(将类读到内存),存储到代码区(Code Area)在加载的过程中假如有静态变量,静态代码块,它从上到下依次初始化。2)为对象分配堆内存(随机分配)3)在堆内存初始化实例变量(从上到下)4)调用构造方法。&9.线程同步(线程协作)当多个线程在共享数据集上要实现交互操作,通常要借助object类中的wait,notify,notifyall方法实现。1)Wait():调用此方法的线程会处于等待状态同时会释放对象锁。2)Notify():调用此方法用于通知具备相同锁对象的线程开始执行。同时调用此方法的线程会释放锁。3)Notifyall():用于通知多个具备相同锁的对象。注意:1) 这些方法要应用在同步代码块或同步方法内部2)这些方法由对象锁调用。10.& 线程通信:&&&&&& 1) 传统线程通信(同步代码块、同步方法和wait,notify,notifyall方法)&&&&&& 2) 使用Condition控制线程通信(同步锁和await、signal、和signalAll方法)&&&&&& 3) 使用阻塞队列(BlockingQueue)控制线程通信&&&&&& 抛出异常不同返回值阻塞线程指定超时时常队尾插入元素add(e)offer(e)put(e)offer(e,time,unit)队头删除元素remove()poll()take()poll(time,unit)获取、不删除元素element()peek()无无&&线程池系统启动一个新线程的成本比较高,因为要涉及到与操作系统的交互,使用线程池可以很好地提高性能,尤其实在程序中需要创建大量生存周期很短暂的线程时,更应该考虑线程池创建线程池的方式:使用Executor Service或者ScheduledExecutorService创建,方法如下:ExecutorService es = &&&&&&&&&&&&& //1.1创建只有一个线程的线程池&&&&&&&&&&&&& //Executors.newSingleThreadExecutor();&&&&&&&&&&&&& //1.2创建上限固定的线程池&&&&&&&&&&&&& //Executors.newFixedThreadPool(2);&&&&&&&&&&&&& //1.3创建一个上限数量没有限定的线程池&&&&&&&&&&&&& Executors.newCachedThreadPool();ScheduledExecutorService ses=&&&&&&&&&&&&&&&&&&&& //2.1创建一个线程的线程池,可以执行延迟任务&&&&&&&&&&&&&&&&&&&& //&&& Executors.newSingleThreadScheduledExecutor();&&&&&&&&&&&&&&&&&&&& //2.1创建一个上限固定的线程池,执行延迟任务&&&&&&&&&&&&&&&&&&&&&&&&&&& Executors.newScheduledThreadPool(2);线程的通讯机制:1)主要步骤:a.Message (消息对象,数据的载体);b.MessageQueue(消息队列,存储多个消息)c.Looper(迭代器,迭代消息队列)d.Handler(发送,处理消息)核心思想:给哪个线程发消息,就获得与哪个线程的Looper相关联的Handler其中,主线程中有默认的Looper,主线程启动时已创建,并且关联一个消息队列。在工作线程中要获得主线程中的Looper,可以通过如下方法:Looper.getMainLooper();工作线程创建Looper的具体步骤:&&&在工作线程中创建Handler,可以通过如下方法:(工作线程中通过主线程的Looper构建Handler)new Handler(Looper.getMainLooper());&Handler中借助sendMessage方法发送消息,借助handleMessage方法处理消息sendMessage方法运行在哪个线程取决于在哪个线程。handleMessage方法运行在哪个线程取决于handler关联的Looper.&3.何为任务调度:所谓任务调度,就是操作系统为线程分配CPU执行任务。1)分配CPU的方式通常有两种方式:a.按时间片b.按优先级3)Timer类在任务调度中应用对于任务数量比较少,比较简单的一些调用可以借助Timer类的对象实现。a.构建Timer对象(看类型,看构造方法)b.借助Timer对象的schedule方法执行任务,任务类型为TimerTask类型,将要执行的任务写到TimerTask对象的方法中。c.任务结束以后,调用timer对象的cancel退出调度。4)ScheduledExecutorService类在任务调度中应用a.ScheduledExecutorService接口继承ExecutorService,并此基础之上扩展了一些相关方法。b.此接口类型的对象,用于管理一个线程池,可以通过线程池中的线程,执行任务。c.假设要通过ScheduledExecutorService接口执行任务调度,首先要借助Executors的方法构建ScheduledExecutorService的实现类的对象,然后借助此对象的相关方法再去执行任务。4.Android 中的线程应用(重点,难点)\1)Android 中线程对象应用机制a.所有的UI操作都在主线程(UI线程)执行.b.所有的耗时操作都在工作线程(自己构建的)。c.说明:在工作线程中更新UI可以调用runOnUiThread(Runnable r)方法5.HandlerThread类的应用此类为Android中提供的一个工具类(本质上是一个线程类型,继承Thread),借助此类主要是为了简化工作线程中Looper对象的创建。在此类中封装了Looper对象的创建,获得,销毁过程。6.Handler对象其它方法应用1)sendMessage(msg)2)handleMessage(msg)3)sendEmptyMessage(int what)4)postDelay(Runnable r); 底层发送延迟消息7.Message 对象其它方法&&&&&& 1)1.obtain(); 首先从消息池获得消息,消息池没有则创建。& &&&&&&&&&& &Message msg=Message.obtain();2)obatin(.....) 重载3)sendToTarget(); 发送消息Message.obtain(h,5).sendToTarget()&标签:&&&&&&&&&&&&&&&原文地址:http://.blog.51cto.com/4759
&&国之画&&&& &&&&chrome插件&&
版权所有 京ICP备号-2
迷上了代码!请高手帮我看下线程的错误_百度知道
请高手帮我看下线程的错误
public class Bo_dx_exClient extends Thread{
boolean flag =
public static void main(String[] args) {
Bo_dx_exClient test = new Bo_dx_exClient();
test.start();
public void run() {
int n = 1;
Map map = new...
我有更好的答案
而不必问那些大虾了,由于软件在运行时会利用所以的CPU空闲时间来进行降温,但Windows不能分辨普通的CPU占用和 降温软件 的降温指令 之间的区别 ,因此CPU始终显示100%,这个就不必担心了,不影响正常的系统运行。 在处理较大的 word文件 时由于word的拼写和语法检查会使得CPU累,只要打开word的工具-选项-拼写和语法把”检查拼写和检查语法“勾去掉。 单击 avi视频 文件后CPU占用率高是因为系统要先扫描该文件,并检查文件所有部分,并建立索引;解决办法:右击保存视频文件的文件夹-属性-常规-高级,去掉为了快速搜索,允许索引服务编制该文件夹的索引的勾。 CPU占用100%案例分析 1、 dllhost进程造成CPU使用率占用100% 特征:服务器正常CPU消耗应该在75%以下,而且CPU消耗应该是上下起伏的,出现这种问题的服务器,CPU会突然一直处100%的水平,而且不会下降。查看任务管理器,可以发现是DLLHOST.EXE消耗了所有的CPU空闲时间,管理员在这种情况下,只好重新启动IIS服务,奇怪的是,重新启动IIS服务后一切正常,但可能过了一段时间后,问题又再次出现了。 直接原因: 有一个或多个ACCESS数据库在多次读写过程中损坏,微软的 MDAC 系统在写入这个损坏的ACCESS文件时,ASP线程处于BLOCK状态,结果其它线程只能等待,IIS被死锁了,全部的CPU时间都消耗在DLLHOST中。 解决办法: 安装“一流信息监控拦截系统”,使用其中的“首席文件检查官IIS健康检查官”软件, 启用”查找死锁模块”,设置: --wblock=yes 监控的目录,请指定您的主机的文件所在目录: --wblockdir=d:\test 监控生成的日志的文件保存位置在安装目录的log目录中,文件名为:logblock.htm 停止IIS,再启动“首席文件检查官IIS健康检查官”,再启动IIS,“首席文件检查官IIS健康检查官”会在logblock.htm中记录下最后写入的ACCESS文件的。 过了一段时间后,当问题出来时,例如CPU会再次一直处100%的水平,可以停止IIS,检查logblock.htm所记录的最后的十个文件,注意,最有问题的往往是计数器类的ACCESS文件,例如:”**COUNT. MDB ”,”**COUNT.ASP”,可以先把最后十个文件或有所怀疑的文件删除到回收站中,再启动IIS,看看问题是否再次出现。我们相信,经过仔细的查找后,您肯定可以找到这个让您操心了一段时间的文件的。 找到这个文件后,可以删除它,或下载下来,用ACCESS2000修复它,问题就解决了。 2、 svchost.exe造成CPU使用率占用100% 在win.ini文件中,在[Windows]下面,“run=”和“load=”是可能加载“木马”程序的途径,必须仔细留心它们。一般情况下,它们的等号后面什幺都没有,如果发现后面跟有路径与文件名不是你熟悉的启动文件,你的计算机就可能中上“木马”了。当然你也得看清楚,因为好多“木马”,如“AOL Trojan木马”,它把自身伪装成command.exe文件,如果不注意可能不会发现它不是真正的系统启动文件。 在system.ini文件中,在[BOOT]下面有个“shell=文件名”。正确的文件名应该是“explorer.exe”,如果不是“explorer.exe”,而是“shell= explorer.exe 程序名”,那幺后面跟着的那个程序就是“木马”程序,就是说你已经中“木马”了。 在注册表中的情况最复杂,通过regedit命令打开注册表编辑器,在点击至:“HKEY-LOCAL-MACHINE\Software\Microsoft\Windows\CurrentVersion\Run”目录下,查看键值中有没有自己不熟悉的自动启动文件,扩展名为EXE,这里切记:有的“木马”程序生成的文件很像系统自身文件,想通过伪装蒙混过关,如“Acid Battery v1.0木马”,它将注册表“HKEY-LOCAL-MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run”下的Explorer 键值改为Explorer=“C:\Windows\expiorer.exe”,“木马”程序与真正的Explorer之间只有“i”与“l”的差别。当然在注册表中还有很多地方都可以隐藏“木马”程序,如:“HKEY-CURRENT-USER\Software\Microsoft\Windows\CurrentVersion\Run”、“HKEY-USERS\****\Software\Microsoft\Windows\CurrentVersion\Run”的目录下都有可能,最好的办法就是在“HKEY-LOCAL-MACHINE\Software\Microsoft\Windows\CurrentVersion\Run”下找到“木马该病毒也称为“Code Red II(红色代码2)”病毒,与早先在西方英文系统下流行“红色代码”病毒有点相反,在国际上被称为VirtualRoot(虚拟目录)病毒。该蠕虫病毒利用Microsoft已知的溢出漏洞,通过80端口来传播到其它的Web页服务器上。受感染的机器可由黑客们通过Http Get的请求运行scripts/root.exe来获得对受感染机器的完全控制权。 当感染一台服务器成功了以后,如果受感染的机器是中文的系统后,该程序会休眠2天,别的机器休眠1天。当休眠的时间到了以后,该蠕虫程序会使得机器重新启动。该蠕虫也会检查机器的月份是否是10月或者年份是否是2002年,如果是,受感染的服务器也会重新启动。当Windows NT系统启动时,NT系统会自动搜索C盘根目录下的文件explorer.exe,受该网络蠕虫程序感染的服务器上的文件explorer.exe也就是该网络蠕虫程序本身。该文件的大小是8192字节,VirtualRoot网络蠕虫程序就是通过该程序来执行的。同时,VirtualRoot网络蠕虫程序还将cmd.exe的文件从Windows NT的system目录拷贝到别的目录,给黑客的入侵敞开了大门。它还会修改系统的注册表项目,通过该注册表项目的修改,该蠕虫程序可以建立虚拟的目录C或者D,病毒名由此而来。值得一提的是,该网络蠕虫程序除了文件explorer.exe外,其余的操作不是基于文件的,而是直接在内存中来进行感染、传播的,这就给捕捉带来了较大难度。 ”程序的文件名,再在整个注册表中搜索即可。 我们先看看微软是怎样描述svchost.exe的。在微软知识库314056中对svchost.exe有如下描述:svchost.exe 是从动态链接库 (DLL) 中运行的服务的通用主机进程名称。 其实svchost.exe是Windows XP系统的一个核心进程。svchost.exe不单单只出现在Windows XP中,在使用NT内核的Windows系统中都会有svchost.exe的存在。一般在Windows 2000中svchost.exe进程的数目为2个,而在Windows XP中svchost.exe进程的数目就上升到了4个及4个以上。所以看到系统的进程列表中有几个svchost.exe不用那幺担心。 svchost.exe到底是做什幺用的呢? 首先我们要了解一点那就是Windows系统的中的进程分为:独立进程和共享进程这两种。由于Windows系统中的服务越来越多,为了节约有限的系统资源微软把很多的系统服务做成了共享模式。那svchost.exe在这中间是担任怎样一个角色呢? svchost.exe的工作就是作为这些服务的宿主,即由svchost.exe来启动这些服务。svchost.exe只是负责为这些服务提供启动的条件,其自身并不能实现任何服务的功能,也不能为用户提供任何服务。svchost.exe通过为这些系统服务调用动态链接库(DLL)的方式来启动系统服务。 svchost.exe是病毒这种说法是任何产生的呢? 因为svchost.exe可以作为服务的宿主来启动服务,所以病毒、木马的编写者也挖空心思的要利用svchost.exe的这个特性来迷惑用户达到入侵、破坏计算机的目的。 如何才能 辨别 哪些是正常的svchost.exe进程,而哪些是 病毒进程 呢? svchost.exe的键值是在“HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Svchost”,如图1所示。图1中每个键值表示一个独立的svchost.exe组。 微软还为我们提供了一种察看系统正在运行在svchost.exe列表中的服务的方法。以Windows XP为例:在“运行”中输入:cmd,然后在命令行模式中输入:tasklist /svc。系统列出如图2所示的服务列表。图2中红框包围起来的区域就是svchost.exe启动的服务列表。如果使用的是Windows 2000系统则把前面的“tasklist /svc”命令替换为:“tlist -s”即可。如果你怀疑计算机有可能被病毒感染,svchost.exe的服务出现异常的话通过搜索 svchost.exe文件 就可以发现异常情况。一般只会找到一个在:“C:\Windows\System32”目录下的svchost.exe程序。如果你在其它目录下发现svchost.exe程序的话,那很可能就是中毒了。 还有一种确认svchost.exe是否中毒的方法是在任务管理器中察看进程的执行路径。但是由于在Windows系统自带的任务管理器不能察看进程路径,所以要使用第三方的进程察看工具。 上面简单的介绍了svchost.exe进程的相关情况。总而言之,svchost.exe是一个系统的核心进程,并不是病毒进程。但由于svchost.exe进程的特殊性,所以病毒也会千方百计的入侵svchost.exe。通过察看svchost.exe进程的执行路径可以确认是否中毒。 3、 Services.exe造成CPU使用率占用100% 症状 在基于 Windows 2000 的计算机上,Services.exe 中的 CPU 使用率可能间歇性地达到100 %,并且计算机可能停止响应(挂起)。出现此问题时,连接到该计算机(如果它是文件服务器或域控制器)的用户会被断开连接。您可能还需要重新启动计算机。如果 Esent.dll 错误地处理将文件刷新到磁盘的方式,则会出现此症状。 解决方案 Service Pack 信息 要解决此问题,请获取最新的 Microsoft Windows 2000 Service Pack。有关其它信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章: 260910 如何获取最新的 Windows 2000 Service Pack 修复程序信息 Microsoft 提供了受支持的修补程序,但该程序只是为了解决本文所介绍的问题。只有计算机遇到本文提到的特定问题时才可应用此修补程序。此修补程序可能还会接受其它一些测试。因此,如果这个问题没有对您造成严重的影响,Microsoft 建议您等待包含此修补程序的下一个 Windows 2000 Service Pack。 要立即解决此问题,请与“Microsoft 产品支持服务”联系,以获取此修补程序。有关“Microsoft 产品支持服务”电话号码和支持费用信息的完整列表,请访问 Microsoft Web 站点: 注意 :特殊情况下,如果 Microsoft 支持专业人员确定某个特定的更新程序能够解决您的问题,可免收通常情况下收取的电话支持服务费用。对于特定更新程序无法解决的其它支持问题和事项,将正常收取支持费用。 下表列出了此修补程序的全球版本的文件属性(或更新的属性)。这些文件的日期和时间按协调通用时间 (UTC) 列出。查看文件信息时,它将转换为本地时间。要了解 UTC 与本地时间之间的时差,请使用“控制面板”中的“日期和时间”工具中的 时区 选项卡。 状态 Microsoft 已经确认这是在本文开头列出的 Microsoft 产品中存在的问题。此问题最初是在 Microsoft Windows 2000 Service Pack 4 中更正的。 4、正常软件造成CPU使用率占用100% 首先,如果是从开机后就发生上述情况直到关机。那幺就有可能是由某个随系统同时登陆的软件造成的。可以通过运行输入“msconfig”打开“系统实用配置工具”,进入“启动”选项卡。接着,依次取消可疑选项前面的对钩,然后重新启动电脑。反复测试直到找到造成故障的软件。或者可以通过一些优化软件如“优化大师”达到上述目的。另:如果键盘内按键卡住也可能造成开机就出现上述问题。 如果是使用电脑途中出项这类问题,可以调出任务管理器(WINXP CTRL+ALT+DEL WIN2000 CTRL+SHIFT“ESC),进入”进程“选项卡,看”CPU“栏,从里面找到占用资源较高的程序(其中SYSTEM IDLE PROCESS是属于正常,它的值一般都很高,它的作用是告诉当前你可用的CPU资源是多少,所以它的值越高越好)通过搜索功能找到这个进程属于哪个软件。然后,可以通过升级、关闭、卸载这个软件或者干脆找个同类软件替换,问题即可得到解决。 5、病毒、木马、间谍软件造成CPU使用率占用100% 出现CPU占用率100% 的故障经常是因为病毒木马造成的,比如震荡波病毒。应该首先更新病毒库,对电脑进行全机扫描 。接着,在使用反间谍软件Ad—Aware,检查是否存在间谍软件。论坛上有不少朋友都遇到过svchost.exe占用CPU100%,这个往往是中毒的表现。 svchost.exe Windows中的系统服务是以动态链接库(DLL)的形式实现的,其中一些会把可执行程序指向svchost.exe,由它调用相应服务的动态链接库并加上相应参数来启动服务。正是因为它的特殊性和重要性,使它更容易成为了一些病毒木马的宿主。 6、 explorer.exe进程造成CPU使用率占用100% 在system.ini文件中,在[BOOT]下面有个“shell=文件名”。正确的文件名应该是“explorer.exe”,如果不是“explorer.exe”,而是“shell= explorer.exe 程序名”,那幺后面跟着的那个程序就是“木马”程序,就是说你已经中“木马”了。 在注册表中的情况最复杂,通过regedit命令打开注册表编辑器,在点击至:“HKEY-LOCAL-MACHINE\Software\Microsoft\Windows\CurrentVersion\Run”目录下,查看键值中有没有自己不熟悉的自动启动文件,扩展名为EXE,这里切记:有的“木马”程序生成的文件很像系统自身文件,想通过伪装蒙混过关,如“Acid Battery v1.0木马”,它将注册表“HKEY-LOCAL-MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run”下的 Explorer 键值改为Explorer=“C:\Windows\expiorer.exe”,“木马”程序与真正的Explorer之间只有“i”与“l”的差别。当然在注册表中还有很多地方都可以隐藏“木马”程序,如:“HKEY-CURRENT-USER\Software\Microsoft\Windows\CurrentVersion\Run”、“HKEY-USERS\****\Software\Microsoft\Windows\CurrentVersion\Run”的目录下都有可能,最好的办法就是在“HKEY-LOCAL-MACHINE\Software\Microsoft\Windows\CurrentVersion\Run”下找到“木马”程序的文件名,再在整个注册表中搜索即可。 7、超线程导致CPU使用率占用100% 这类故障的共同原因就是都使用了具有超线程功能的P4 CPU。我查找了一些资料都没有明确的原因解释。据一些网友总结超线程似乎和天网防火墙有冲突,可以通过卸载天网并安装其它防火墙解决,也可以通过在BIOS中关闭超线程功能解决。 8、AVI视频文件造成CPU使用率占用100% 在Windows XP中,单击一个较大的AVI视频文件后,可能会出现系统假死现象,并且造成exploere.exe进程的使用率100%,这是因为系统要先扫描该文件,并检查文件所有部分,建立索引。如果文件较大就会需要较长时间并造成CPU占用率100%。解决方法:右键单击保存视频文件的文件夹,选择”属性—&常规—&高级“,去掉”为了快速搜索,允许索引服务编制该文件夹的索引“前面复选框的对钩即可。 9、杀毒软件CPU使用率占用100% 现在的杀毒软件一般都加入了,对网页、邮件、个人隐私的即时监空功能,这样无疑会加大系统的负担。比如:在玩游戏的时候,会非常缓慢。关闭该杀毒软件是解决得最直接办法。 10、处理较大的Word文件时CPU使用率过高 上述问题一般还会造成电脑假死,这些都是因为WORD的拼写和语法检查造成的,只要打开WORD的“工具—选项”,进入“拼写和语法”选项卡,将其中的“键入时检查拼写”和“键入时检查语法”两项前面的复选框中的钩去掉即可。 11、网络连接导致CPU使用率占用100% 当你的Windows2000/xp作为服务器时,收到来自端口445上的连接请求后,系统将分配内存和少量CPU资源来为这些连接提供服务,当负荷过重,就会出现上述情况。要解决这个问题可以通过修改注册表来解决,打开注册表,找到HKEY—LOCAL—MACHNE\SYSTEM\CurrentControlSet\Services\lanmanserver,在右面新建一个名为&;maxworkitems&;的DWORD值.然后双击该值,如果你的电脑有512以上内存,就设置为&;1024&;,如果小于512,就设置为256. 一些不完善的驱动程序也可以造成CPU使用率过高 经常使用待机功能,也会造成系统自动关闭硬盘DMA模式。这不仅会使系统性能大幅度下降,系统启动速度变慢,也会使是系统在运行一些大型软件和游戏时CPU使用率100%,产生停顿。另外,虚机团上产品团购,超级便宜。 要解决此问题,关闭不必要的启动项,比如浏览器占用了很搞的CPU,那幺就要升级该软件或者干脆用别的同类软件代替、 病毒;Windows&#92。 CPU降温软件 ,升级你的硬件配备。 2,这是因为在工作项的数目和响应能力之间存在固有的权衡关系。 7、查看 网络连接 。 svchost 、在“显示”属性里面点击“外观”标签页 4、在“外观”标签页里面点击“效果” 5;system32(2000)下的,那就可疑.exe 不单单只出现 在Window s XP中,在使用 NT 内核的 Windows系统 中都会有svchost,当快捷 菜单显示 的时候,CPU占用率将增加到100%。解决办法:用可靠的杀毒软件彻底清理系统内存和本地硬盘,并且打开系统设置软件: 当你在资源管理器里面右键点击一个文件或目录的时候。你要确定合适的 MaxWorkItems 设置以提高系统响应能力。如果设置的值不正确,服务器的响应能力可能会受到影响,或者某个用户独占太 多系统 资源;msconfig-&启动; system32 (xp)或c:&#92,看看到底是哪个程序占了较搞的比例,如果是某个大程序那还可以原谅。 方法二:在使用鼠标右键点击文件或目录的时候先使用鼠标左键选择你的目标文件或目录。然后再使用鼠标右键弹出快捷菜单。 CPU占用100%解决办法 一般情况下CPU占了100%的话我们的电脑总会慢下来,而很多时候我们是可以通过做 一点点 的改动就可以解决: 如果计算机有512MB以上的内存,无疑增大了系统负担。经常性更新升级杀毒软件和防火墙:先点左键选中,再右键(不是很理解)。处理方式:基本上没有合理的处理方式:通过在桌面点右键-属性-外观-效果。然后双击该值,在打开的窗口中键入下列数值并保存退出,建议使用 微软认证 的或由官方发布的驱动,并且严格核对型号,造成了难以发现的故障原因。 处理方式:尤其是 显卡驱动 特别要注意。非官方,最好是选择微软认证的或者是官方发布的驱动来装,有时可以适当的升级驱动,不过记得最新的不是最好的、版本。 3、金山、 瑞星 都加入了对网页、 插件 ,那你就要看看是什幺程序了,当你查不出这个进程是什幺的时候就去google或者 baidu 搜。有时只结束是没用的,在 xp下 我们可以结合msconfig里的启动项,把一些不用的项给关掉、查看“ svchost ”进程,可以 关闭杀毒软件 的文件监控. exe 是Windows XP系统 的一个核心进程。 svchost,取消”为菜单和工具提示使用下列过度效果(U)“来解决。还有某些杀毒软件对文件的监控也会有所影响。 右击 文件导致100%的CPU占用我们也会遇到,有时点右键停顿可能就是这个问题了,我们可以通过修改注册表来解决:在 注册表编辑器 中依次展开[HKEY_LOCAL_MACHINE\SYSTEM&#92。 一些驱动程序有时也可能出现这样的现象,键入“256”.exe的存在。一般在 Windows 2000 中 svchost,插件,邮件的监控也是同样的道理,当然我们可以试下xp系统下给我们的那个兼容项,右键点该,我们来看看是怎么回事? 征兆: 在资源管理器里面,当你右键点击一个目录或一个文件,你将有可能出现下面所列问题: 任何文件的拷贝操作在那个时间将有可能停止相应 网络连接速度将显著性的降低 所有的流输入&#47:关闭“为菜单和工具提示使用过渡效果” 1、点击“开始”--“控制面板” 2,加强防毒意识,掌握正确的防杀毒知识,察看有无异常启动的程序,键入“1024”;如果计算机内存小于 512 MB。 8、查看网络连接 当安装了Windows XP的计算机做服务器的时候我注意到你所说的CPU占用率偏高的问题,因此估计只要解决这个问题你电脑就可以畅通的玩这些游戏了!CPU占用率高 的九种可能 1、防杀毒软件造成 故障 由于新版的 KV 、在“控制面板”里面双击“显示” 3。 当机器慢下来的时候,首先我们想到的当然是任务管理器了;输出操作例如使用Windows Media Player 听音乐将有可能是音乐失真成因。升级杀毒软件杀毒吧,在右侧窗口中 新建 一个名为“maxworkitems”的 DWORD值 。在2000下可以去下个winpatrol来用。 一些常用的软件、邮件的随机监控、在“效果”对话框里面,清除“为菜单和工具提示使用过渡效果”前面的复选框接着点击两次“确定”按钮。主要是网卡,有时软件和系统会有点不兼容,改为手动。 5.exe进程 的数目为2个,而 在Windows XP中svchost.exe进程的数目就上升到了4个及4个以上,在关闭该程序后只要CPU正常了那就没问题;如果不是,重启。 6、开始-&运行-&gt,当你关闭快捷菜单的时候才返回正常水平。 解决方法: 方法一。 9、看看是不是Windows XP使用鼠标右键引起CPU占用100% 前不久的报到说在资源管理器里面使用鼠标右键会导致CPU资源100%占用;Services\lanmanserver ]分支,尽量使用最少的监控服务吧,或者,收到端口 445 上的连接请求时,它将分配内存和少量地调配 CPU资源来为这些连接提供服务。 4、控制面板— 管理工具 —服务—RISING REALTIME MONITOR SERVICE 点鼠标右键;还有就是对网页。当负荷过重的时候,CPU占用率可能过高、驱动没有经过认证,造成CPU资源占用100% 大量的测试版的驱动在网上泛滥. exe文件 选兼容性。 svchost.exe有时是比较头痛的,当你看到你的某个svchost.exe占用很大CPU时你可以去下个aports或者fport来检查其对应的程序路径,也就是什幺东西在掉用这个svchost.exe,如果不是c:\winnt&#92。官方的解释、木马 造成 大量的蠕虫病毒在系统内部迅速复制,造成CPU占用资源率据高不下;CurrentControlSet&#92
但是你的代码中并没有启动线程。类似于 test。看看你其他地方有没有启动这个Timertasks线程吧tpe.execute(new Timertasks(n)).start();
是创建了线程对象;是启动线程的。tpe也不知道是啥对象的实例
ThreadPoolExecutor tpe=new ThreadPoolExecutor(10, 50, 1200, TimeUnit.SECONDS,new SynchronousQueue&Runnable&(),new ThreadPoolExecutor.DiscardOldestPolicy());tpe是jdk线程池。Timertasks这个类就是写了一重写run方法。如果条件满足。start在哪启动
可以试试。 Thread t=new Timertasks(n);
tpe.execute(t);
t.start(); 我没用过这个tpe。也不太确定.
为您推荐:
其他类似问题
线程的相关知识
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。}

我要回帖

更多关于 关于线程说法错误的是 的文章

更多推荐

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

点击添加站长微信