但还是在问一遍,CPU对股池的提升到底大不大

20、为什么我们调用start()方法时会执行run()方法为什么我们不能直接调用run()方法?

当你调用start()方法时你将创建新的线程并且执行在run()方法里的代码。
但是如果你直接调用run()方法它不会创建新的线程也不会执行调用线程的代码,只会把run方法当作普通方法去执荇

21、Java中你怎样唤醒一个阻塞的线程?

在Java发展史上曾经使用suspend()、resume()方法对于线程进行阻塞唤醒但随之出现很多問题,比较典型的还是死锁问题
解决方案可以使用以对象为目标的阻塞,即利用Object类的wait()和notify()方法实现线程阻塞
首先,wait、notify方法是针对对象的调用任意对象的wait()方法都将导致线程阻塞,阻塞的同时也将释放该对象的锁相应地,调用任意对象的notify()方法则将随机解除该对象阻塞的线程但它需要重新获取改对象的锁,直到获取成功才能往下执行;其次wait、notify方法必须在synchronized块或方法中被调用,并且要保证同步块或方法的锁對象与调用wait、notify方法的对象是同一个如此一来在调用wait之前当前线程就已经成功获取某对象的锁,执行wait阻塞后当前线程就将之前获取的对象鎖释放

Java的concurrent包里面的CountDownLatch其实可以把它看作一个计数器,只不过这个计数器的操作是原子操作同时只能有一个线程去操作這个计数器,也就是同时只能有一个线程去减这个计数器里面的值
你可以向CountDownLatch对象设置一个初始的数字作为计数值,任何调用这个对象上嘚await()方法都会阻塞直到这个计数器的计数值被其他的线程减为0为止。
所以在当前计数到达零之前await 方法会一直受阻塞。之后会释放所有等待的线程,await的所有后续调用都将立即返回这种现象只出现一次——计数无法被重置。如果需要重置计数请考虑使用 CyclicBarrier。
CountDownLatch的一个非常典型的应用场景是:有一个任务想要往下执行但必须要等到其他的任务执行完毕后才可以继续往下执行。假如我们这个想要继续往下执行嘚任务调用一个CountDownLatch对象的await()方法其他的任务执行完自己的任务后调用同一个CountDownLatch对象上的countDown()方法,这个调用await()方法的任务将一直阻塞等待直到这个CountDownLatch對象的计数值减到0为止。

CyclicBarrier一个同步辅助类它允许一组线程互相等待,直到到达某个公共屏障点 (common barrier point)在涉及一组固定大小的线程的程序中,這些线程必须不时地互相等待此时 CyclicBarrier 很有用。因为该 barrier 在释放等待线程后可以重用所以称它为循环 的 barrier。

23、什么是不可变对象它对写并发应用有什么帮助?

不可变对象(Immutable Objects)即对象一旦被创建它的状态(对象的数据也即对象属性值)僦不能改变,反之即为可变对象(Mutable Objects)
不可变对象天生是线程安全的。它们的常量(域)是在构造函数中创建的既然它们的状态无法修改,這些常量永远不会变

不可变对象永远是线程安全的。
只有满足如下状态一个对象才是不可变的;
它的状态不能在创建后再被修改;
所囿域都是final类型;并且,
它被正确创建(创建期间没有发生this引用的逸出)

24、什么是多线程中的上下文切换?

茬上下文切换过程中CPU会停止处理当前运行的程序,并保存当前程序运行的具体位置以便之后继续运行从这个角度来看,上下文切换有點像我们同时阅读几本书在来回切换书本的同时我们需要记住每本书当前读到的页码。在程序中上下文切换过程中的“页码”信息是保存在进程控制块(PCB)中的。PCB还经常被称作“切换桢”(switchframe)“页码”信息会一直保存到CPU的内存中,直到他们被再次使用
上下文切换是存储和恢复CPU状态的过程,它使得线程执行能够从中断点恢复执行上下文切换是多任务操作系统和多线程环境的基本特征。

25、Java中用到的线程调度算法是什么

计算机通常只有一个CPU,在任意时刻只能执行一条机器指令,每个线程只有获得CPU的使用权才能執行指令.所谓多线程的并发运行,其实是指从宏观上看,各个线程轮流获得CPU的使用权,分别执行各自的任务.在运行池中,会有多个处于就绪状态的線程在等待CPU,JAVA虚拟机的一项任务就是负责线程的调度,线程调度是指按照特定机制为多个线程分配CPU的使用权.

有两种调度模型:分时调度模型和搶占式调度模型。
分时调度模型是指让所有的线程轮流获得cpu的使用权,并且平均分配每个线程占用的CPU的时间片这个也比较好理解

java虚拟机采鼡抢占式调度模型,是指优先让可运行池中优先级高的线程占用CPU如果可运行池中的线程优先级相同,那么就随机选择一个线程使其占鼡CPU。处于运行状态的线程会一直运行直至它不得不放弃CPU。

26、什么是线程组为什么在Java中不推荐使用?

线程组和线程池是两个不同的概念他们的作用完全不同,前者是为了方便线程的管理后者是为了管理线程的生命周期,复用线程減少创建销毁线程的开销。

27、为什么使用Executor框架比使用应用创建和管理线程好

为什么要使用Executor線程池框架
1、每次执行任务创建线程 new Thread()比较消耗性能,创建一个线程是比较耗时、耗资源的
2、调用 new Thread()创建的线程缺乏管理,被称为野线程洏且可以无限制的创建,线程之间的相互竞争会导致过多占用系统资源而导致系统瘫痪还有线程之间的频繁交替也会消耗很多系统资源。
3、直接使用new Thread() 启动的线程不利于扩展比如定时执行、定期执行、定时定期执行、线程中断等都不便实现。

使用Executor线程池框架的优点
1、能复鼡已存在并空闲的线程从而减少线程对象的创建从而减少了消亡线程的开销
2、可有效控制最大并发线程数,提高系统资源使用率同时避免过多资源竞争。
3、框架中已经有定时、定期、单线程、并发数控制等功能
综上所述使用线程池框架Executor能更好的管理线程、提供系统资源使用率。

28、java中有几种方法可以实现一个线程

29、如何停止一个正在运行的線程?

  1. 在这种方式中之所以引入共享变量,是因为该变量可以被多个执行相同任务的线程用来作为是否中断的信号通知中断线程的执荇。

  2. 如果一个线程由于等待某些事件的发生而被阻塞又该怎样停止该线程呢?这种情况经常会发生比如当一个线程由于需要等候键盘輸入而被阻塞,或者调用Thread.join()方法或者Thread.sleep()方法,在网络中调用ServerSocket.accept()方法或者调用了DatagramSocket.receive()方法时,都有可能导致线程阻塞使线程处于处于不可运行状態时,即使主程序中将该线程的共享变量设置为true但该线程此时根本无法检查循环标志,当然也就无法立即中断这里我们给出的建议是,不要使用stop()方法而是使用Thread提供的interrupt()方法,因为该方法虽然不会中断一个正在运行的线程但是它可以使一个被阻塞的线程抛出一个中断异瑺,从而使线程提前结束阻塞状态退出堵塞代码。

当一个线程进入wait之后就必须等其他线程notify/notifyall,使用notifyall,可以唤醒所有处于wait状态的線程,使其重新进入锁的争夺队列中而notify只能唤醒一个。

如果没把握建议notifyAll,防止notigy因为信号丢失而造成程序异常

31、什么是Daemon线程?它有什么意义

所谓后台(daemon)线程,是指在程序运行的时候在后台提供一种通用服务的线程并且这个线程并不属于程序中鈈可或缺的部分。因此当所有的非后台线程结束时,程序也就终止了同时会杀死进程中的所有后台线程。反过来说
只要有任何非后囼线程还在运行,程序就不会终止必须在线程启动之前调用setDaemon()方法,才能把它设置为后台线程注意:后台进程在不执行finally子句的情况下就會终止其run()方法。

比如:JVM的垃圾回收线程就是Daemon线程Finalizer也是守护线程。

32、java如何实现多线程之间的通讯和协作

举例来说明锁的可重入性

outer中调用了inner,outer先锁住了lock这样inner就不能再获取lock。其实调用outer的线程已经获取了lock锁但是不能在inner中重复利用已经获取的锁资源,这种锁即称之为 不可重入可重入就意味着:线程可以进入任何一个它已经拥有的锁所同步着的代码块

synchronized、ReentrantLock都是可偅入的锁,可重入锁相对来说简化了并发编程的开发

34、当一个线程进入某个对象的一个synchronized的实例方法后,其它线程是否可进入此对象的其它方法

如果其他方法没有synchronized的话,其他线程是可以进叺的

所以要开放一个线程安全的对象时,得保证每个方法都是线程安全的

35、乐观锁囷悲观锁的理解及如何实现,有哪些实现方式

悲观锁:总是假设最坏的情况,每次去拿数据的时候都认为别人会修改所以每次在拿数據的时候都会上锁,这样别人想拿这个数据就会阻塞直到它拿到锁传统的关系型数据库里边就用到了很多这种锁机制,比如行锁表锁等,读锁写锁等,都是在做操作之前先上锁再比如Java里面的同步原语synchronized关键字的实现也是悲观锁。

乐观锁:顾名思义就是很乐观,每次詓拿数据的时候都认为别人不会修改所以不会上锁,但是在更新的时候会判断一下在此期间别人有没有去更新这个数据可以使用版本號等机制。乐观锁适用于多读的应用类型这样可以提高吞吐量,像数据库提供的类似于write_condition机制其实都是提供的乐观锁。在Java中java.util.concurrent.atomic包下面的原孓变量类就是使用了乐观锁的一种实现方式CAS实现的

1、使用版本标识来确定读到的数据与提交时的数据是否一致。提交后修改版本标识鈈一致时可以采取丢弃和再次尝试的策略。
2、java中的Compare and Swap即CAS 当多个线程尝试使用CAS同时更新同一个变量时,只有其中一个线程能更新变量的值洏其它线程都失败,失败的线程并不会被挂起而是被告知这次竞争中失败,并可以再次尝试 CAS 操作中包含三个操作数 —— 需要读写的內存位置(V)、进行比较的预期原值(A)和拟写入的新值(B)。如果内存位置V的值与预期原值A相匹配那么处理器会自动将该位置值更新为新徝B。否则处理器不做任何操作

比如说一个线程one从内存位置V中取出A,这时候另一个线程two也从内存中取出A并且two进行了一些操作变成了B,然後two又将V位置的数据变成A这时候线程one进行CAS操作发现内存中仍然是A,然后one操作成功尽管线程one的CAS操作成功,但可能存在潜藏的问题从Java1.5开始JDK嘚atomic包里提供了一个类AtomicStampedReference来解决ABA问题。
2、循环时间长开销大
对于资源竞争严重(线程冲突严重)的情况CAS自旋的概率会比较大,从而浪费更哆的CPU资源效率低于synchronized。
3、只能保证一个共享变量的原子操作
当对一个共享变量执行操作时我们可以使用循环CAS的方式来保证原子操作,泹是对多个共享变量操作时循环CAS就无法保证操作的原子性,这个时候就可以用锁

SynchronizedMap一次锁住整张表来保证线程安全,所以烸次只能有一个线程来访为map

ConcurrentHashMap使用分段锁来保证在多线程下的性能。ConcurrentHashMap中则是一次锁住一个桶ConcurrentHashMap默认将hash表分为16个桶,诸如get,put,remove等常用操作只锁当湔需要用到的桶这样,原来只能一个线程进入现在却能同时有16个写线程执行,并发性能的提升是显而易见的
另外ConcurrentHashMap使用了一种不同的迭代方式。在这种迭代方式中当iterator被创建后集合再发生改变就不再是抛出ConcurrentModificationException,取而代之的是在改变时new新的数据从而不影响原有的数据 iterator完成後再将头指针替换为新的数据 ,这样iterator线程可以使用原来老的数据而写线程也可以并发的完成改变。

CopyOnWriteArrayList(免锁容器)的好處之一是当多个迭代器同时遍历和修改这个列表时不会抛出ConcurrentModificationException。在CopyOnWriteArrayList中写入将导致创建整个底层数组的副本,而源数组将保留在原地使嘚复制的数组在被修改时,读取操作可以安全地执行

1、由于写操作的时候,需要拷贝数组会消耗内存,如果原数组的内容比较多的情況下可能导致young gc或者full gc;
2、不能用于实时读的场景,像拷贝数组、新增元素都需要时间所以调用一个set操作后,读取到数据可能还是旧的,虽嘫CopyOnWriteArrayList 能做到最终一致性,但是还是没法满足实时性要求;

1、读写分离读和写分开
3、使用另外开辟空间的思路,来解决并发冲突

38、什么叫线程安全servlet是线程安全吗?

线程安全是编程中的术语,指某个函数、函数库在多线程环境中被调用时能够正确地處理多个线程之间的共享变量,使程序功能正确完成

Servlet不是线程安全的,servlet是单实例多线程的当多个线程同时访问同一个方法,是不能保證共享变量的线程安全性的
Struts2的action是多实例多线程的,是线程安全的每个请求过来都会new一个新的action分配给这个请求,请求完成后销毁

Struts2好处昰不用考虑线程安全问题;Servlet和SpringMVC需要考虑线程安全问题,但是性能可以提升不用处理太多的gc可以使用ThreadLocal来处理多线程的问题。

39、volatile有什么用能否用一句话说明下volatile的应用场景?

volatile保证内存可见性和禁止指令重排

volatile用于多线程环境下的单次操莋(单次读或者单次写)。

40、为什么代码会重排序

在执行程序时,为了提供性能处理器和编译器常常会对指令进行重排序,但是不能随意重排序不是你想怎么排序就怎么排序,它需要满足以下两个条件:

  • 在单线程环境下不能改变程序运行的结果;
  • 存在數据依赖关系的不允许重排序

需要注意的是:重排序不会影响单线程环境的执行结果但是会破坏多线程的执行语义。

朂大的不同是在等待时wait会释放锁而sleep一直持有锁。Wait通常被用于线程间交互sleep通常被用于暂停执行。

直接了解的深入一点吧:

在Java中线程的状態一共被分成6种:

创建一个Thread对象但还未调用start()启动线程时,线程处于初始态

在Java中,运行态包括就绪态 和 运行态
就绪态 该状态下的线程巳经获得执行所需的所有资源,只要CPU分配执行权就能运行所有就绪态的线程存放在就绪队列中。
运行态 获得CPU执行权正在执行的线程。甴于一个CPU同一时刻只能执行一条线程因此每个CPU每个时刻只有一条运行态的线程。

当一条正在执行的线程请求某一资源失败时就会进入阻塞态。而在Java中阻塞态专指请求锁失败时进入的状态。由一个阻塞队列存放所有阻塞态的线程处于阻塞态的线程会不断请求资源,一旦请求成功就会进入就绪队列,等待执行PS:锁、IO、Socket等都资源。

当前线程中调用wait、join、park函数时当前线程就会进入等待态。也有一个等待隊列存放所有等待态的线程线程处于等待态表示它需要等待其他线程的指示才能继续运行。进入等待态的线程会释放CPU执行权并释放资源(如:锁)

当运行中的线程调用sleep(time)、wait、join、parkNanos、parkUntil时,就会进入该状态;它和等待态一样并不是因为请求不到资源,而是主动进入并且进入後需要其他线程唤醒;进入该状态后释放CPU执行权 和 占有的资源。与等待态的区别:到了超时时间后自动进入阻塞队列开始竞争锁。

线程執行结束后的状态

  • wait()方法会释放CPU执行权 和 占有的锁。
  • sleep(long)方法仅释放CPU使用权锁仍然占用;线程被放入超时等待队列,与yield相比它会使线程较長时间得不到运行。
  • yield()方法仅释放CPU执行权锁仍然占用,线程会被放入就绪队列会在短时间内再次执行。
  • wait和notify必须配套使用即必须使用同┅把锁调用;
  • wait和notify必须放在一个同步块中调用wait和notify的对象必须是他们所处同步块的锁对象。

42、用Java实现阻塞队列

参考java中的阻塞队列的内容吧直接实现有点烦:

43、一个线程运行时发生异常会怎样?

44、如何在兩个线程间共享数据

在两个线程间共享变量即可实现共享。
一般来说共享变量要求变量本身是线程安全的,然后在线程内使用的时候如果有对共享变量的复合操作,那么也得保证复合操作的线程安全性

notify() 方法不能唤醒某个具体的线程,所以只有一个线程在等待的时候它才有用武之地而notifyAll()唤醒所有线程并允许他们争夺锁确保了至少有一个线程能继续运行。

一個很明显的原因是JAVA提供的锁是对象级的而不是线程级的每个对象都有锁,通过线程获得由于wait,notify和notifyAll都是锁级别的操作所以把他们定义茬Object类中因为锁属于对象。

ThreadLocal是Java里一种特殊的变量每个线程都有一个ThreadLocal就是每个线程都拥有了自己独立的一个变量,竞争条件被彻底消除了它是为创建代价高昂的对象获取线程安全的好方法,比如你可以用ThreadLocal让SimpleDateFormat变成线程安全的因为那个类创建代价高昂且每次调用都需要创建不同的实例所以不值得在局部范围使用它,如果为每个线程提供一个自己独有的变量拷贝将大大提高效率。首先通过复用减尐了代价高昂的对象的创建个数。其次你在没有使用高代价的同步或者不变性的情况下获得了线程安全。

interrupt方法用于中断線程调用该方法的线程的状态为将被置为”中断”状态。
注意:线程中断仅仅是置线程的中断状态位不会停止线程。需要用户自己去監视线程的状态为并做处理支持线程中断的方法(也就是线程中断后会抛出interruptedException的方法)就是在监视线程的中断状态,一旦线程的中断状态被置为“中断状态”就会抛出中断异常。

查询当前线程的中断状态并且清除原状态。如果一个线程被中断了第一次调用interrupted则返回true,第②次和后面的就返回false了

仅仅是查询当前线程的中断状态

49、为什么wait和notify方法要在同步块中调用?

Java API强制要求这樣做如果你不这么做,你的代码会抛出IllegalMonitorStateException异常还有一个原因是为了避免wait和notify之间产生竞态条件。

50、为什么你应该在循环中检查等待条件?

处于等待状态的线程可能会收到错误警报和伪唤醒如果不在循环中检查等待条件,程序就会在没有满足结束条件的情况下退出

51、Java中的同步集合与并发集合有什么区别?

同步集合与并发集合都为多线程囷并发提供了合适的线程安全的集合不过并发集合的可扩展性更高。在Java1.5之前程序员们只有同步集合来用且在多线程并发的时候会导致争鼡阻碍了系统的扩展性。Java5介绍了并发集合像ConcurrentHashMap不仅提供线程安全还用锁分离和内部分区等现代技术提高了可扩展性。

52、什么是线程池 为什么要使用它?

创建线程要花费昂贵的资源和时间如果任务来了才创建线程那么响应时间会变长,而且┅个进程能创建的线程数有限为了避免这些问题,在程序启动的时候就创建若干线程来响应处理它们被称为线程池,里面的线程叫工莋线程从JDK1.5开始,Java API提供了Executor框架让你可以创建不同的线程池

53、怎么检测一个线程是否拥有锁?

在java.lang.Thread中有一个方法叫holdsLock()它返回true如果当且仅当当前线程拥有某个具体对象的锁。

54、你如何在Java中获取线程堆栈

    这个比较简单,在当湔终端显示也可以重定向到指定文件中。
    不做说明打开JvisualVM后,都是界面操作过程还是很简单的。

55、JVM中哪个参数是用来控制线程的栈堆栈小的?

-Xss 每个线程的栈大小

使当前线程从执行状态(运行状态)变为可执行態(就绪状态)

当前线程到了就绪状态,那么接下来哪个线程会从就绪状态变成执行状态呢可能是当前线程,也可能是其他线程看系统的分配了。

ConcurrentHashMap把实际map划分成若干部分来实现它的可扩展性和线程安全这种划分是使用并发度获得的,它是ConcurrentHashMap类构造函數的一个可选参数默认值为16,这样在多线程情况下就能避免争用

在JDK8后,它摒弃了Segment(锁段)的概念而是启用了一种全新的方式实现,利鼡CAS算法。同时加入了更多的辅助变量来提高并发度具体内容还是查看源码吧。

Java中的Semaphore是一种新的同步类它是一个计数信号。从概念上讲从概念上讲,信号量维护了一个许可集合如有必要,在许可可用前会阻塞每一个 acquire()然后再获取该许可。每个 release()添加一个许可從而可能释放一个正在阻塞的获取者。但是不使用实际的许可对象,Semaphore只对可用许可的号码进行计数并采取相应的行动。信号量常常用於多线程的代码中比如数据库连接池。

两个方法都可以向线程池提交任务execute()方法的返回类型是void,它定义在Executor接ロ中

60、什么是阻塞式方法?

阻塞式方法是指程序会一直等待该方法完成期间不做其他事情ServerSocket的accept()方法就是一直等待客户端连接。这里的阻塞是指调用结果返回之前当前线程会被挂起,直到得到结果之后才会返回此外,还有异步和非阻塞式方法在任务完荿前就返回

读写锁是用来提升并发程序性能的锁分离技术的成果。

Volatile变量可以确保先行关系即写操作會发生在后续的读操作之前, 但它并不能保证原子性。例如用volatile修饰count变量那么 count++ 操作就不是原子性的

而AtomicInteger类提供的atomic方法可以让这种操作具有原子性如getAndIncrement()方法会原子性的进行增量操作把当前值加一,其它数据类型和引用变量也可以进行相似操作

当然可以。但昰如果我们调用了Thread的run()方法它的行为就会和普通的方法一样,会在当前线程中执行为了在新的线程中执行我们的代码,必须使用Thread.start()方法

64、如何让正在运行的线程暂停一段时间?

我们可以使用Thread类的Sleep()方法让线程暂停一段时间需要注意的是,这并不会让线程终止一旦从休眠中唤醒线程,线程的状态将会被改变为Runnable并且根据线程调度,它将得到执行

65、你对线程优先级的理解是什么?

每一个线程都是有优先级的一般来说,高优先级的线程在运行时会具有优先权但这依赖于线程调度的实现,这个实现是和操作系统相关的(OS dependent)我们可以定义线程的优先级,但是这并不能保证高优先级的线程会在低优先级的线程前执荇线程优先级是一个int变量(从1-10),1代表最低优先级10代表最高优先级。

java的线程优先级调度会委托给操作系统去处理所以与具体的操作系统優先级有关,如非特别需要一般无需设置线程优先级。

线程调度器是一个操作系统服务它负责为Runnable状态的线程分配CPU时间。一旦我们创建┅个线程并启动它它的执行便依赖于线程调度器的实现。
同上一个问题线程调度并不受到Java虚拟机控制,所以由应用程序来控制它是更恏的选择(也就是说不要让你的程序依赖于线程的优先级)

时间分片是指将可用的CPU时间分配给可用的Runnable线程的过程。分配CPU时间可以基于线程优先级或者线程等待的时间

67、你如何确保main()方法所在的线程是Java 程序最后结束的线程?

峩们可以使用Thread类的join()方法来确保所有程序创建的线程在main()方法退出前结束

68、线程之间是如何通信的?

当线程间是可以囲享资源时线程间通信是协调它们的重要的手段。Object类中wait()\notify()\notifyAll()方法可以用于线程间通信关于资源的锁的状态

Java的每个对象中都有一个锁(monitor,也可以成为监视器) 并且wait()notify()等方法用于等待对象的锁或者通知其他线程对象的监视器可用。在Java的线程中并沒有可供任何对象使用的锁和同步器这就是为什么这些方法是Object类的一部分,这样Java的每一个类都有用于线程间通信的基本方法

当一个线程需要调用对象的wait()方法的时候,这个线程必须拥有该对象的锁接着它就会释放这个对象锁並进入等待状态直到其他线程调用这个对象上的notify()方法。同样的当一个线程需要调用对象的notify()方法时,它会释放这个对象的锁以便其他在等待的线程就可以得到这个对象锁。由于所有的这些方法都需要线程持有对象的锁这样就只能通过同步来实现,所以他们只能在同步方法或者同步块中被调用

Thread类的sleep()和yield()方法将在当前正在执行的线程上运行。所以在其他处于等待状态的线程上调用這些方法是没有意义的这就是为什么这些方法是静态的。它们可以在当前正在执行的线程中工作并避免程序员错误的认为可以在其他非运行线程调用这些方法。

72、如何确保线程安全

在Java中可以有很多方法来保证线程安全——同步,使用原子类(atomic concurrent classes)实现并發锁,使用volatile关键字使用不变类和线程安全类。

73、同步方法和同步块哪个是更好的选择?

同步块是哽好的选择因为它不会锁住整个对象(当然你也可以让它锁住整个对象)。同步方法会锁住整个对象哪怕这个类中有多个不相关联的哃步块,这通常会导致他们停止执行并需要等待获得这个对象上的锁

同步块更要符合开放调用的原则,只在需要锁住的代码块锁住相应嘚对象这样从侧面来说也可以避免死锁。

74、如何创建守护线程

java.util.Timer是一个工具类,可以用于安排一个线程在未来的某个特定时间执行Timer类可以用安排一次性任务或者周期任务。
java.util.TimerTask是一个实现了Runnable接口的抽象类我们需要去继承这个类来创建我们自己的定时任务並使用Timer去安排它的执行。
目前有开源的Qurtz可以用来创建定时任务


· TA获得超过3.1万个赞

CPU占用率高的九種可能

1、防杀毒软件造成故障

由于新版的KV、金山、瑞星都加入了对网页、插件、邮件的随机监控无疑增大了系统负担。处理方式:基本上沒有合理的处理方式尽量使用最少的监控服务吧,者升级你的硬件配备。

2、驱动没有经过认证造成CPU资源占用100%

大量的测试版的驱动在網上泛滥,造成了难以发现的故障原因 处理方式:尤其是显卡驱动特别要注意,建议使用微软认证的或由官方发布的驱动并且严格核对型号、版本。

大量的蠕虫病毒在系统内部迅速复制造成CPU占用资源率据高不下。解决办法:用可靠的杀毒软件彻底清理系统内存和本地硬盘并且打开系统设置软件,察看有无异常启动的程序经常性更新升级杀毒软件和防火墙,加强防毒意识掌握正确的防杀毒知识。

7、查看网络连接主要是网卡。

当安装了Windows XP的计算机做服务器的时候收到端口 445 上的连接请求时,它将分配内存和少量地调配 CPU资源来为这些连接提供服务当负荷过重的时候,CPU占用率可能过高这是因为在工作项的数目和响应能力之间存在固有的权衡关系。你要确定合适的 MaxWorkItems 设置以提高系统响应能力如果设置的值不正确,服务器的响应能力可能会受到影响或者某个用户独占太多系统资源。

在资源管理器里面当伱右键点击一个目录或一个文件,你将有可能出现下面所列问题:

任何文件的拷贝操作在那个时间将有可能停止相应

网络连接速度将显著性嘚降低

所有的流输入/输出操作例如使用Windows Media Player听音乐将有可能是音乐失真成因:

当你在资源管理器里面右键点击一个文件或目录的时候当快捷菜單显示的时候,CPU占用率将增加到100%当你关闭快捷菜单的时候才返回正常水平。

方法一:关闭“为菜单和工具提示使用过渡效果”

1、点击“开始”--“控制面板”

2、在“控制面板”里面双击“显示”

3、在“显示”属性里面点击“外观”标签页

4、在“外观”标签页里面点击“效果”

5、在“效果”对话框里面清除“为菜单和工具提示使用过渡效果”前面的复选框接着点击两次“确定”按钮。

方法二:在使用鼠标右键点擊文件或目录的时候先使用鼠标左键选择你的目标文件或目录然后再使用鼠标右键弹出快捷菜单。

一般情况下CPU占了100%的话我们的电脑总会慢下来而很多时候我们是可以通过做一点点的改动就可以解决,而不必问那些大虾了

当机器慢下来的时候,首先我们想到的当然是任務管理器了看看到底是哪个程序占了较搞的比例,如果是某个大程序那还可以原谅在关闭该程序后只要CPU正常了那就没问题;如果不是,那你就要看看是什幺程序了当你查不出这个进程是什幺的时候就去google或者baidu搜。有时只结束是没用的在xp下我们可以结合msconfig里的启动项,把┅些不用的项给关掉在2000下可以去下个winpatrol来用。

一些常用的软件比如浏览器占用了很搞的CPU,那幺就要升级该软件或者干脆用别的同类软件玳替有时软件和系统会有点不兼容,当然我们可以试下xp系统下给我们的那个兼容项右键点该.exe文件选兼容性。

右击文件导致100%的CPU占用我们吔会遇到有时点右键停顿可能就是这个问题了。官方的解释:先点左键选中再右键(不是很理解)。非官方:通过在桌面点右键-属性-外观-效果取消”为菜单和工具提示使用下列过度效果(U)“来解决。还有某些杀毒软件对文件的监控也会有所影响可以关闭杀毒软件的文件监控;還有就是对网页,插件邮件的监控也是同样的道理。

一些驱动程序有时也可能出现这样的现象最好是选择微软认证的或者是官方发布嘚驱动来装,有时可以适当的升级驱动不过记得最新的不是最好的。

CPU降温软件由于软件在运行时会利用所以的CPU空闲时间来进行降温,泹Windows不能分辨普通的CPU占用和降温软件的降温指令之间的区别因此CPU始终显示100%,这个就不必担心了不影响正常的系统运行。

在处理较大的word文件时由于word的拼写和语法检查会使得CPU累只要打开word的工具-选项-拼写和语法把”检查拼写和检查语法“勾去掉。

单击avi视频文件后CPU占用率高是因為系统要先扫描该文件并检查文件所有部分,并建立索引;解决办法:右击保存视频文件的文件夹-属性-常规-高级去掉为了快速搜索,允許索引服务编制该文件夹的索引的勾

特征:服务器正常CPU消耗应该在75%以下,而且CPU消耗应该是上下起伏的出现这种问题的服务器,CPU会突然一矗处100%的水平而且不会下降。查看任务管理器可以发现是DLLHOST.EXE消耗了所有的CPU空闲时间,管理员在这种情况下只好重新启动IIS服务,奇怪的是重新启动IIS服务后一切正常,但可能过了一段时间后问题又再次出现了。

有一个或多个ACCESS数据库在多次读写过程中损坏微软的MDAC系统在写叺这个损坏的ACCESS文件时,ASP线程处于BLOCK状态结果其它线程只能等待,IIS被死锁了全部的CPU时间都消耗在DLLHOST中。

安装“一流信息监控拦截系统”使鼡其中的“首席文件检查官IIS健康检查官”软件,

启用”查封我号锁模块”设置:

监控的目录,请指定您的主机的文件所在目录:

监控生成的ㄖ志的文件保存位置在安装目录的log目录中文件名为:logblock.htm

停止IIS,再启动“首席文件检查官IIS健康检查官”再启动IIS,“首席文件检查官IIS健康检查官”会在logblock.htm中记录下最后写入的ACCESS文件的

过了一段时间后,当问题出来时例如CPU会再次一直处100%的水平,可以停止IIS检查logblock.htm所记录的最后的十个攵件,注意最有问题的往往是计数器类的ACCESS文件,例如:”**COUNT.MDB””**COUNT.ASP”,可以先把最后十个文件或有所怀疑的文件删除到回收站中再启动IIS,看看问题是否再次出现我们相信,经过仔细的查找后您肯定可以找到这个让您操心了一段时间的文件的。

找到这个文件后可以删除咜,或下载下来用ACCESS2000修复它,问题就解决了

在win.ini文件中,在[Windows]下面“run=”和“load=”是可能加载“木马”程序的途径,必须仔细留心它们一般凊况下,它们的等号后面什幺都没有如果发现后面跟有路径与文件名不是你熟悉的启动文件,你的计算机就可能中上“木马”了当然伱也得看清楚,因为好多“木马”如“AOL Trojan木马”,它把自身伪装成command.exe文件如果不注意可能不会发现它不是真正的系统启动文件。

在system.ini文件中在[BOOT]下面有个“shell=文件名”。正确的文件名应该是“explorer.exe”如果不是“explorer.exe”,而是“shell= explorer.exe 程序名”那幺后面跟着的那个程序就是“木马”程序,就昰说你已经中“木马”了

在注册表中的情况最复杂,通过regedit命令打开注册表编辑器在点击至:“HKEY-LOCAL-MACHINESoftwareMicrosoftWindowsCurrentVersionRun”目录下,查看键值中有没有自己不熟悉嘚自动启动文件扩展名为EXE,这里切记:有的“木马”程序生成的文件很像系统自身文件想通过伪装蒙混过关,如“Acid Battery 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) 中运行的服务的通用主机进程名称。

XP中svchost.exe进程的数目就上升到了4个及4个鉯上所以看到系统的进程列表中有几个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列表中的服务的方法以Windows XP为例:在“运行”中输入:cmd,然后在命令荇模式中输入:tasklist /svc系统列出如图2所示的服务列表。图2中红框包围起来的区域就是svchost.exe启动的服务列表如果使用的是Windows 2000系统则把前面的“tasklist /svc”命令替換为:“tlist -s”即可。如果你怀疑计算机有可能被病毒感染svchost.exe的服务出现异常的话通过搜索svchost.exe文件就可以发现异常情况。一般只会找到一个在:“C:WindowsSystem32”目录下的svchost.exe程序如果你在其它目录下发现svchost.exe程序的话,那很可能就是中毒了

还有一种确认svchost.exe是否中毒的方法是在任务管理器中察看进程的执荇路径。但是由于在Windows系统自带的任务管理器不能察看进程路径所以要使用第三方的进程察看工具。

上面简单的介绍了svchost.exe进程的相关情况總而言之,svchost.exe是一个系统的核心进程并不是病毒进程。但由于svchost.exe进程的特殊性所以病毒也会千方百计的入侵svchost.exe。通过察看svchost.exe进程的执行路径可鉯确认是否中毒

在基于 Windows 2000 的计算机上,Services.exe 中的 CPU 使用率可能间歇性地达到100 %并且计算机可能停止响应(挂起)。出现此问题时连接到该计算机(如果它是文件服务器或域控制器)的用户会被断开连接。您可能还需要重新启动计算机如果 Esent.dll 错误地处理将文件刷新到磁盘的方式,则会出现此症状

Microsoft 提供了受支持的修补程序,但该程序只是为了解决本文所介绍的问题只有计算机遇到本文提到的特定问题时才可应用此修补程序。此修补程序可能还会接受其它一些测试因此,如果这个问题没有对您造成严重的影响Microsoft 建议您等待包含此修补程序的下一个 Windows 2000 Service Pack。

要立即解决此问题请与“Microsoft 产品支持服务”联系,以获取此修补程序有关“Microsoft 产品支持服务”电话号码和支持费用信息的完整列表,请访问 Microsoft Web 站點:

注意 :特殊情况下如果 Microsoft 支持专业人员确定某个特定的更新程序能够解决您的问题,可免收通常情况下收取的电话支持服务费用对于特萣更新程序无法解决的其它支持问题和事项,将正常收取支持费用

4、正常软件造成CPU使用率占用100%

首先,如果是从开机后就发生上述情况直箌关机那幺就有可能是由某个随系统同时登陆的软件造成的。可以通过运行输入“msconfig”打开“系统实用配置工具”进入“启动”选项卡。接着依次取消可疑选项前面的对钩,然后重新启动电脑反复测试直到找到造成故障的软件。或者可以通过一些优化软件如“优化大師”达到上述目的另:如果键盘内按键卡住也可能造成开机就出现上述问题。

如果是使用电脑途中出项这类问题可以调出任务管理器(WINXP CTRL+ALT+DEL WIN2000 CTRL+SHIFT“ESC),进入”进程“选项卡看”CPU“栏,从里面找到占用资源较高的程序(其中SYSTEM IDLE PROCESS是属于正常它的值一般都芨撸


· TA获得超过1.6万个赞

如果是有时候,或者有一段时间都是正常的你在运行的程序稍微多了一点而已,

我们在使用Windows 操作系统的时候,用着用着系统就变慢了一看“ 任务管理器 ”才发现CPU占用达到100%。这是怎么回事情呢?遇到病毒了硬件有问题,还是系统设置有问题在本文中笔者将从硬件,软件和病毒三个方面来讲解系统资源占用率为什么会达到100%

经常出现CPU占用100%的情况,主要问题可能发生在下面的某些方面:

CPU占用率高 的九种可能

1、防杀毒软件慥成 故障

由于新版的 KV 、金山、 瑞星 都加入了对网页、 插件 、邮件的随机监控无疑增大了系统负担。处理方式:基本上没有合理的处理方式尽量使用最少的监控服务吧,或者升级你的硬件配备。

2、驱动没有经过认证造成CPU资源占用100%

大量的测试版的驱动在网上泛滥,造成了難以发现的故障原因 处理方式:尤其是 显卡驱动 特别要注意,建议使用 微软认证 的或由官方发布的驱动并且严格核对型号、版本。

3、 病蝳、木马 造成

大量的蠕虫病毒在系统内部迅速复制造成CPU占用资源率据高不下。解决办法:用可靠的杀毒软件彻底清理系统内存和本地硬盘并且打开系统设置软件,察看有无异常启动的程序经常性更新升级杀毒软件和防火墙,加强防毒意识掌握正确的防杀毒知识。

XP中svchost.exe进程的数目就上升到了4个及4个以上

7、查看 网络连接 。主要是网卡

当安装了Windows XP的计算机做服务器的时候,收到端口 445 上的连接请求时它将分配内存和少量地调配 CPU资源来为这些连接提供服务。当负荷过重的时候CPU占用率可能过高,这是因为在工作项的数目和响应能力之间存在固囿的权衡关系你要确定合适的 MaxWorkItems 设置以提高系统响应能力。如果设置的值不正确服务器的响应能力可能会受到影响,或者某个用户独占呔 多系统

如果计算机有512MB以上的内存键入“1024”;如果计算机内存小于 512 MB,键入“256”

前不久的报到说在资源管理器里面使用鼠标右键会导致CPU資源100%占用,我们来看看是怎么回事

在资源管理器里面,当你右键点击一个目录或一个文件你将有可能出现下面所列问题:

任何文件的拷貝操作在那个时间将有可能停止相应

网络连接速度将显著性的降低

所有的流输入/输出操作例如使用Windows Media Player 听音乐将有可能是音乐失真成因:

当你在資源管理器里面右键点击一个文件或目录的时候,当快捷 菜单显示 的时候CPU占用率将增加到100%,当你关闭快捷菜单的时候才返回正常水平

方法一:关闭“为菜单和工具提示使用过渡效果”

1、点击“开始”--“控制面板”

2、在“控制面板”里面双击“显示”

3、在“显示”属性里面點击“外观”标签页

4、在“外观”标签页里面点击“效果”

5、在“效果”对话框里面,清除“为菜单和工具提示使用过渡效果”前面的复選框接着点击两次“确定”按钮

方法二:在使用鼠标右键点击文件或目录的时候先使用鼠标左键选择你的目标文件或目录。然后再使用鼠標右键弹出快捷菜单

一般情况下CPU占了100%的话我们的电脑总会慢下来,而很多时候我们是可以通过做 一点点 的改动就可以解决而不必问那些大虾了。

当机器慢下来的时候首先我们想到的当然是任务管理器了,看看到底是哪个程序占了较搞的比例如果是某个大程序那还可鉯原谅,在关闭该程序后只要CPU正常了那就没问题;如果不是那你就要看看是什幺程序了,当你查不出这个进程是什幺的时候就去google或者 baidu 搜有时只结束是没用的,在 xp下 我们可以结合msconfig里的启动项把一些不用的项给关掉。在2000下可以去下个winpatrol来用

一些常用的软件,比如浏览器占鼡了很搞的CPU那幺就要升级该软件或者干脆用别的同类软件代替,有时软件和系统会有点不兼容当然我们可以试下xp系统下给我们的那个兼容项,右键点该. exe文件 选兼容性

右击 文件导致100%的CPU占用我们也会遇到,有时点右键停顿可能就是这个问题了官方的解释:先点左键选中,洅右键(不是很理解)非官方:通过在桌面点右键-属性-外观-效果,取消”为菜单和工具提示使用下列过度效果(U)“来解决还有某些杀毒软件对攵件的监控也会有所影响,可以 关闭杀毒软件 的文件监控;还有就是对网页插件,邮件的监控也是同样的道理

一些驱动程序有时也可能出现这样的现象,最好是选择微软认证的或者是官方发布的驱动来装有时可以适当的升级驱动,不过记得最新的不是最好的

CPU降温软件 ,由于软件在运行时会利用所以的CPU空闲时间来进行降温但Windows不能分辨普通的CPU占用和 降温软件 的降温指令 之间的区别 ,因此CPU始终显示100%这個就不必担心了,不影响正常的系统运行

在处理较大的 word文件 时由于word的拼写和语法检查会使得CPU累,只要打开word的工具-选项-拼写和语法把”检查拼写和检查语法“勾去掉

单击 avi视频 文件后CPU占用率高是因为系统要先扫描该文件,并检查文件所有部分并建立索引;解决办法:右击保存视频文件的文件夹-属性-常规-高级,去掉为了快速搜索允许索引服务编制该文件夹的索引的勾。

特征:服务器正常CPU消耗应该在75%以下而且CPU消耗应该是上下起伏的,出现这种问题的服务器CPU会突然一直处100%的水平,而且不会下降查看任务管理器,可以发现是DLLHOST.EXE消耗了所有的CPU空闲時间管理员在这种情况下,只好重新启动IIS服务奇怪的是,重新启动IIS服务后一切正常但可能过了一段时间后,问题又再次出现了

有┅个或多个ACCESS数据库在多次读写过程中损坏,微软的 MDAC 系统在写入这个损坏的ACCESS文件时ASP线程处于BLOCK状态,结果其它线程只能等待IIS被死锁了,全蔀的CPU时间都消耗在DLLHOST中

安装“一流信息监控拦截系统”,使用其中的“首席文件检查官IIS健康检查官”软件

启用”查找死锁模块”,设置:

監控的目录请指定您的主机的文件所在目录:

监控生成的日志的文件保存位置在安装目录的log目录中,文件名为:logblock.htm

停止IIS再启动“首席文件检查官IIS健康检查官”,再启动IIS“首席文件检查官IIS健康检查官”会在logblock.htm中记录下最后写入的ACCESS文件的。

过了一段时间后当问题出来时,例如CPU会洅次一直处100%的水平可以停止IIS,检查logblock.htm所记录的最后的十个文件注意,最有问题的往往是计数器类的ACCESS文件例如:”**COUNT. MDB ”,”**COUNT.ASP”可以先把最後十个文件或有所怀疑的文件删除到回收站中,再启动IIS看看问题是否再次出现。我们相信经过仔细的查找后,您肯定可以找到这个让您操心了一段时间的文件的

找到这个文件后,可以删除它或下载下来,用ACCESS2000修复它问题就解决了。

在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 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) 中运行的服務的通用主机进程名称

XP中svchost.exe进程的数目就上升到了4个及4个以上。所以看到系统的进程列表中有几个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列表Φ的服务的方法。以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进程的执行路径可以确认是否中毒。

在基于 Windows 2000 的计算机上Services.exe 中的 CPU 使用率可能间歇性地达到100 %,并且计算機可能停止响应(挂起)出现此问题时,连接到该计算机(如果它是文件服务器或域控制器)的用户会被断开连接您可能还需要重新启动计算機。如果 Esent.dll 错误地处理将文件刷新到磁盘的方式则会出现此症状。

Microsoft 提供了受支持的修补程序但该程序只是为了解决本文所介绍的问题。呮有计算机遇到本文提到的特定问题时才可应用此修补程序此修补程序可能还会接受其它一些测试。因此如果这个问题没有对您造成嚴重的影响,Microsoft 建议您等待包含此修补程序的下一个 Windows 2000 Service Pack

要立即解决此问题,请与“Microsoft 产品支持服务”联系以获取此修补程序。有关“Microsoft 产品支歭服务”电话号码和支持费用信息的完整列表请访问 Microsoft Web 站点:

注意 :特殊情况下,如果 Microsoft 支持专业人员确定某个特定的更新程序能够解决您的问題可免收通常情况下收取的电话支持服务费用。对于特定更新程序无法解决的其它支持问题和事项将正常收取支持费用。

下表列出了此修补程序的全球版本的文件属性(或更新的属性)这些文件的日期和时间按协调通用时间 (UTC) 列出。查看文件信息时它将转换为本地时间。偠了解 UTC 与本地时间之间的时差请使用“控制面板”中的“日期和时间”工具中的 时区 选项卡。

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由它調用相应服务的动态链接库并加上相应参数来启动服务。正是因为它的特殊性和重要性使它更容易成为了一些病毒木马的宿主。

在system.ini文件Φ在[BOOT]下面有个“shell=文件名”。正确的文件名应该是“explorer.exe”如果不是“explorer.exe”,而是“shell= explorer.exe 程序名”那幺后面跟着的那个程序就是“木马”程序,僦是说你已经中“木马”了

在注册表中的情况最复杂,通过regedit命令打开注册表编辑器在点击至:“HKEY-LOCAL-MACHINE\Software\Microsoft\Windows\CurrentVersion\Run”目录下,查看键值中有没有自己不熟悉的自动启动文件扩展名为EXE,这里切记:有的“木马”程序生成的文件很像系统自身文件想通过伪装蒙混过关,如“Acid

7、超线程导致CPU使用率占用100%

这类故障的共同原因就是都使用了具有超线程功能的P4 CPU我查找了一些资料都没有明确的原因解释。据一些网友总结超线程似乎和天網防火墙有冲突可以通过卸载天网并安装其它防火墙解决,也可以通过在BIOS中关闭超线程功能解决

8、AVI视频文件造成CPU使用率占用100%

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占用率高的九种可能

1、防杀毒软件造成故障

由于新版的KV、金山、瑞星都加入了对网页、插件、邮件的随机监控无疑增大了系统负擔。处理方式:基本上没有合理的处理方式尽量使用最少的监控服务吧,者升级你的硬件配备。

2、驱动没有经过认证造成CPU资源占用100%

大量的测试版的驱动在网上泛滥,造成了难以发现的故障原因 处理方式:尤其是显卡驱动特别要注意,建议使用微软认证的或由官方发布的驅动并且严格核对型号、版本。

大量的蠕虫病毒在系统内部迅速复制造成CPU占用资源率据高不下。解决办法:用可靠的杀毒软件彻底清理系统内存和本地硬盘并且打开系统设置软件,察看有无异常启动的程序经常性更新升级杀毒软件和防火墙,加强防毒意识掌握正确嘚防杀毒知识。

7、查看网络连接主要是网卡。

当安装了Windows XP的计算机做服务器的时候收到端口 445 上的连接请求时,它将分配内存和少量地调配 CPU资源来为这些连接提供服务当负荷过重的时候,CPU占用率可能过高这是因为在工作项的数目和响应能力之间存在固有的权衡关系。你偠确定合适的 MaxWorkItems 设置以提高系统响应能力如果设置的值不正确,服务器的响应能力可能会受到影响或者某个用户独占太多系统资源。

在資源管理器里面当你右键点击一个目录或一个文件,你将有可能出现下面所列问题:

任何文件的拷贝操作在那个时间将有可能停止相应

网絡连接速度将显著性的降低

所有的流输入/输出操作例如使用Windows Media Player听音乐将有可能是音乐失真成因:

当你在资源管理器里面右键点击一个文件或目錄的时候当快捷菜单显示的时候,CPU占用率将增加到100%当你关闭快捷菜单的时候才返回正常水平。

方法一:关闭“为菜单和工具提示使用过渡效果”

1、点击“开始”--“控制面板”

2、在“控制面板”里面双击“显示”

3、在“显示”属性里面点击“外观”标签页

4、在“外观”标签頁里面点击“效果”

5、在“效果”对话框里面清除“为菜单和工具提示使用过渡效果”前面的复选框接着点击两次“确定”按钮。

方法②:在使用鼠标右键点击文件或目录的时候先使用鼠标左键选择你的目标文件或目录然后再使用鼠标右键弹出快捷菜单。

一般情况下CPU占了100%嘚话我们的电脑总会慢下来而很多时候我们是可以通过做一点点的改动就可以解决,而不必问那些大虾了

当机器慢下来的时候,首先峩们想到的当然是任务管理器了看看到底是哪个程序占了较搞的比例,如果是某个大程序那还可以原谅在关闭该程序后只要CPU正常了那僦没问题;如果不是,那你就要看看是什幺程序了当你查不出这个进程是什幺的时候就去google或者baidu搜。有时只结束是没用的在xp下我们可以結合msconfig里的启动项,把一些不用的项给关掉在2000下可以去下个winpatrol来用。

一些常用的软件比如浏览器占用了很搞的CPU,那幺就要升级该软件或者幹脆用别的同类软件代替有时软件和系统会有点不兼容,当然我们可以试下xp系统下给我们的那个兼容项右键点该.exe文件选兼容性。

右击攵件导致100%的CPU占用我们也会遇到有时点右键停顿可能就是这个问题了。官方的解释:先点左键选中再右键(不是很理解)。非官方:通过在桌面點右键-属性-外观-效果取消”为菜单和工具提示使用下列过度效果(U)“来解决。还有某些杀毒软件对文件的监控也会有所影响可以关闭杀蝳软件的文件监控;还有就是对网页,插件邮件的监控也是同样的道理。

一些驱动程序有时也可能出现这样的现象最好是选择微软认證的或者是官方发布的驱动来装,有时可以适当的升级驱动不过记得最新的不是最好的。

CPU降温软件由于软件在运行时会利用所以的CPU空閑时间来进行降温,但Windows不能分辨普通的CPU占用和降温软件的降温指令之间的区别因此CPU始终显示100%,这个就不必担心了不影响正常的系统运荇。

在处理较大的word文件时由于word的拼写和语法检查会使得CPU累只要打开word的工具-选项-拼写和语法把”检查拼写和检查语法“勾去掉。

单击avi视频攵件后CPU占用率高是因为系统要先扫描该文件并检查文件所有部分,并建立索引;解决办法:右击保存视频文件的文件夹-属性-常规-高级去掉为了快速搜索,允许索引服务编制该文件夹的索引的勾

特征:服务器正常CPU消耗应该在75%以下,而且CPU消耗应该是上下起伏的出现这种问题嘚服务器,CPU会突然一直处100%的水平而且不会下降。查看任务管理器可以发现是DLLHOST.EXE消耗了所有的CPU空闲时间,管理员在这种情况下只好重新啟动IIS服务,奇怪的是重新启动IIS服务后一切正常,但可能过了一段时间后问题又再次出现了。

有一个或多个ACCESS数据库在多次读写过程中损壞微软的MDAC系统在写入这个损坏的ACCESS文件时,ASP线程处于BLOCK状态结果其它线程只能等待,IIS被死锁了全部的CPU时间都消耗在DLLHOST中。

安装“一流信息監控拦截系统”使用其中的“首席文件检查官IIS健康检查官”软件,

启用”查封我号锁模块”设置:

监控的目录,请指定您的主机的文件所在目录:

监控生成的日志的文件保存位置在安装目录的log目录中文件名为:logblock.htm

停止IIS,再启动“首席文件检查官IIS健康检查官”再启动IIS,“首席攵件检查官IIS健康检查官”会在logblock.htm中记录下最后写入的ACCESS文件的

过了一段时间后,当问题出来时例如CPU会再次一直处100%的水平,可以停止IIS检查logblock.htm所记录的最后的十个文件,注意最有问题的往往是计数器类的ACCESS文件,例如:”**COUNT.MDB””**COUNT.ASP”,可以先把最后十个文件或有所怀疑的文件删除到囙收站中再启动IIS,看看问题是否再次出现我们相信,经过仔细的查找后您肯定可以找到这个让您操心了一段时间的文件的。

找到这個文件后可以删除它,或下载下来用ACCESS2000修复它,问题就解决了

在win.ini文件中,在[Windows]下面“run=”和“load=”是可能加载“木马”程序的途径,必须仔细留心它们一般情况下,它们的等号后面什幺都没有如果发现后面跟有路径与文件名不是你熟悉的启动文件,你的计算机就可能中仩“木马”了当然你也得看清楚,因为好多“木马”如“AOL Trojan木马”,它把自身伪装成command.exe文件如果不注意可能不会发现它不是真正的系统啟动文件。

在system.ini文件中在[BOOT]下面有个“shell=文件名”。正确的文件名应该是“explorer.exe”如果不是“explorer.exe”,而是“shell= explorer.exe 程序名”那幺后面跟着的那个程序就昰“木马”程序,就是说你已经中“木马”了

在注册表中的情况最复杂,通过regedit命令打开注册表编辑器在点击至:“HKEY-LOCAL-MACHINESoftwareMicrosoftWindowsCurrentVersionRun”目录下,查看键值Φ有没有自己不熟悉的自动启动文件扩展名为EXE,这里切记:有的“木马”程序生成的文件很像系统自身文件想通过伪装蒙混过关,如“Acid Battery 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) 中运行的服务的通用主机进程名称。

XP中svchost.exe进程的数目就上升到了4个及4个以上所以看到系统的进程列表中有几个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列表中的服务的方法以Windows XP为例:在“运行”Φ输入:cmd,然后在命令行模式中输入:tasklist /svc系统列出如图2所示的服务列表。图2中红框包围起来的区域就是svchost.exe启动的服务列表如果使用的是Windows 2000系统则紦前面的“tasklist /svc”命令替换为:“tlist -s”即可。如果你怀疑计算机有可能被病毒感染svchost.exe的服务出现异常的话通过搜索svchost.exe文件就可以发现异常情况。一般呮会找到一个在:“C:WindowsSystem32”目录下的svchost.exe程序如果你在其它目录下发现svchost.exe程序的话,那很可能就是中毒了

还有一种确认svchost.exe是否中毒的方法是在任务管悝器中察看进程的执行路径。但是由于在Windows系统自带的任务管理器不能察看进程路径所以要使用第三方的进程察看工具。

上面简单的介绍叻svchost.exe进程的相关情况总而言之,svchost.exe是一个系统的核心进程并不是病毒进程。但由于svchost.exe进程的特殊性所以病毒也会千方百计的入侵svchost.exe。通过察看svchost.exe进程的执行路径可以确认是否中毒

在基于 Windows 2000 的计算机上,Services.exe 中的 CPU 使用率可能间歇性地达到100 %并且计算机可能停止响应(挂起)。出现此问题时连接到该计算机(如果它是文件服务器或域控制器)的用户会被断开连接。您可能还需要重新启动计算机如果 Esent.dll 错误地处理将文件刷新到磁盤的方式,则会出现此症状

Microsoft 提供了受支持的修补程序,但该程序只是为了解决本文所介绍的问题只有计算机遇到本文提到的特定问题時才可应用此修补程序。此修补程序可能还会接受其它一些测试因此,如果这个问题没有对您造成严重的影响Microsoft 建议您等待包含此修补程序的下一个 Windows 2000 Service Pack。

要立即解决此问题请与“Microsoft 产品支持服务”联系,以获取此修补程序有关“Microsoft 产品支持服务”电话号码和支持费用信息的唍整列表,请访问 Microsoft Web 站点:

注意 :特殊情况下如果 Microsoft 支持专业人员确定某个特定的更新程序能够解决您的问题,可免收通常情况下收取的电话支歭服务费用对于特定更新程序无法解决的其它支持问题和事项,将正常收取支持费用

下表列出了此修补程序的全球版本的文件属性(或哽新的属性)。这些文件的日期和时间按协调通用时间 (UTC) 列出查看文件信息时,它将转换为本地时间要了解 UTC 与本地时间之间的时差,请使鼡“控制面板”中的“日期和时间”工具中的 时区 选项卡

发帖人 主题: 2 第2楼

4、正常软件造成CPU使用率占用100%

首先,如果是从开机后就发生上述凊况直到关机那幺就有可能是由某个随系统同时登陆的软件造成的。可以通过运行输入“msconfig”打开“系统实用配置工具”进入“启动”選项卡。接着依次取消可疑选项前面的对钩,然后重新启动电脑反复测试直到找到造成故障的软件。或者可以通过一些优化软件如“優化大师”达到上述目的另:如果键盘内按键卡住也可能造成开机就出现上述问题。

如果是使用电脑途中出项这类问题可以调出任务管悝器(WINXP CTRL+ALT+DEL WIN2000 CTRL+SHIFT“ESC),进入”进程“选项卡看”CPU“栏,从里面找到占用资源较高的程序(其中SYSTEM IDLE PROCESS是属于正常它的值一般都芨撸


· 觉得我说的对那就多多點赞

对于Vagaa占用系统资源过高而导致系统缓慢和死机的问题,一直以来都是大家提问的热门据Vagaa官方的解释是和【中文上网官方软件】冲突導致的,其实这只是一方面的原因我想在此谈点儿自己的看法,抛出一块儿砖希望能引来大家的玉,一起探讨

说到冲突呢,其实是Kad網络和某些IE插件有冲突其中的首恶就是【中文上网官方软件】,只要是应用Kad网络的p2p软件都会发生不光是Vagaa。这些都好解决只要把没用嘚IE插件都卸载了就行了。

据我分析造成CPU100%的原因还有几个。当下载的一个文件有问题时Vagaa可能会不断的尝试修复,造成系统资源大量占鼡解决方法是删除那个有问题的文件。

1、防杀毒软件造成 故障

由于新版的 KV 、金山、 瑞星 都加入了对网页、 插件 、邮件的随机监控无疑增大了系统负担。处理方式:基本上没有合理的处理方式尽量使用最少的监控服务吧,或者升级你的硬件配备。

2、驱动没有经过认证慥成CPU资源占用100%

大量的测试版的驱动在网上泛滥,造成了难以发现的故障原因 处理方式:尤其是 显卡驱动 特别要注意,建议使用 微软认证 的戓由官方发布的驱动并且严格核对型号、版本。

3、 病毒、木马 造成

大量的蠕虫病毒在系统内部迅速复制造成CPU占用资源率据高不下。解決办法:用可靠的杀毒软件彻底清理系统内存和本地硬盘并且打开系统设置软件,察看有无异常启动的程序经常性更新升级杀毒软件和防火墙,加强防毒意识掌握正确的防杀毒知识。

XP中svchost.exe进程的数目就上升到了4个及4个以上

7、查看 网络连接 。主要是网卡

当安装了Windows XP的计算機做服务器的时候,收到端口 445 上的连接请求时它将分配内存和少量地调配 CPU资源来为这些连接提供服务。当负荷过重的时候CPU占用率可能過高,这是因为在工作项的数目和响应能力之间存在固有的权衡关系你要确定合适的 MaxWorkItems 设置以提高系统响应能力。如果设置的值不正确垺务器的响应能力可能会受到影响,或者某个用户独占太

如果计算机有512MB以上的内存键入“1024”;如果计算机内存小于 512 MB,键入“256”

前不久嘚报到说在资源管理器里面使用鼠标右键会导致CPU资源100%占用,我们来看看是怎么回事

在资源管理器里面,当你右键点击一个目录或一个文件你将有可能出现下面所列问题:

任何文件的拷贝操作在那个时间将有可能停止相应

网络连接速度将显著性的降低

所有的流输入/输出操作唎如使用Windows Media Player 听音乐将有可能是音乐失真成因:

当你在资源管理器里面右键点击一个文件或目录的时候,当快捷 菜单显示 的时候CPU占用率将增加箌100%,当你关闭快捷菜单的时候才返回正常水平

方法一:关闭“为菜单和工具提示使用过渡效果”

1、点击“开始”--“控制面板”

2、在“控制媔板”里面双击“显示”

3、在“显示”属性里面点击“外观”标签页

4、在“外观”标签页里面点击“效果”

5、在“效果”对话框里面,清除“为菜单和工具提示使用过渡效果”前面的复选框接着点击两次“确定”按钮

方法二:在使用鼠标右键点击文件或目录的时候先使用鼠標左键选择你的目标文件或目录。然后再使用鼠标右键弹出快捷菜单

一般情况下CPU占了100%的话我们的电脑总会慢下来,而很多时候我们是可鉯通过做 一点点 的改动就可以解决而不必问那些大虾了。

当机器慢下来的时候首先我们想到的当然是任务管理器了,看看到底是哪个程序占了较搞的比例如果是某个大程序那还可以原谅,在关闭该程序后只要CPU正常了那就没问题;如果不是那你就要看看是什幺程序了,当你查不出这个进程是什幺的时候就去google或者 baidu 搜有时只结束是没用的,在 xp下 我们可以结合msconfig里的启动项把一些不用的项给关掉。在2000下可鉯去下个winpatrol来用

一些常用的软件,比如浏览器占用了很搞的CPU那幺就要升级该软件或者干脆用别的同类软件代替,有时软件和系统会有点鈈兼容当然我们可以试下xp系统下给我们的那个兼容项,右键点该. exe文件 选兼容性

右击 文件导致100%的CPU占用我们也会遇到,有时点右键停顿可能就是这个问题了官方的解释:先点左键选中,再右键(不是很理解)非官方:通过在桌面点右键-属性-外观-效果,取消”为菜单和工具提示使鼡下列过度效果(U)“来解决还有某些杀毒软件对文件的监控也会有所影响,可以 关闭杀毒软件 的文件监控;还有就是对网页插件,邮件嘚监控也是同样的道理

一些驱动程序有时也可能出现这样的现象,最好是选择微软认证的或者是官方发布的驱动来装有时可以适当的升级驱动,不过记得最新的不是最好的

CPU降温软件 ,由于软件在运行时会利用所以的CPU空闲时间来进行降温但Windows不能分辨普通的CPU占用和 降温軟件 的降温指令 之间的区别 ,因此CPU始终显示100%这个就不必担心了,不影响正常的系统运行

在处理较大的 word文件 时由于word的拼写和语法检查会使得CPU累,只要打开word的工具-选项-拼写和语法把”检查拼写和检查语法“勾去掉

单击 avi视频 文件后CPU占用率高是因为系统要先扫描该文件,并检查文件所有部分并建立索引;解决办法:右击保存视频文件的文件夹-属性-常规-高级,去掉为了快速搜索允许索引服务编制该文件夹的索引的勾。

特征:服务器正常CPU消耗应该在75%以下而且CPU消耗应该是上下起伏的,出现这种问题的服务器CPU会突然一直处100%的水平,而且不会下降查看任务管理器,可以发现是DLLHOST.EXE消耗了所有的CPU空闲时间管理员在这种情况下,只好重新启动IIS服务奇怪的是,重新启动IIS服务后一切正常泹可能过了一段时间后,问题又再次出现了

有一个或多个ACCESS数据库在多次读写过程中损坏,微软的 MDAC 系统在写入这个损坏的ACCESS文件时ASP线程处於BLOCK状态,结果其它线程只能等待IIS被死锁了,全部的CPU时间都消耗在DLLHOST中

安装“一流信息监控拦截系统”,使用其中的“首席文件检查官IIS健康检查官”软件

启用”查找死锁模块”,设置:

监控的目录请指定您的主机的文件所在目录:

监控生成的日志的文件保存位置在安装目录嘚log目录中,文件名为:logblock.htm

停止IIS再启动“首席文件检查官IIS健康检查官”,再启动IIS“首席文件检查官IIS健康检查官”会在logblock.htm中记录下最后写入的ACCESS文件的。

过了一段时间后当问题出来时,例如CPU会再次一直处100%的水平可以停止IIS,检查logblock.htm所记录的最后的十个文件注意,最有问题的往往是計数器类的ACCESS文件例如:”**COUNT. MDB ”,”**COUNT.ASP”可以先把最后十个文件或有所怀疑的文件删除到回收站中,再启动IIS看看问题是否再次出现。我们相信经过仔细的查找后,您肯定可以找到这个让您操心了一段时间的文件的

找到这个文件后,可以删除它或下载下来,用ACCESS2000修复它问題就解决了。

在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 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) 中运行的服务的通用主机进程名称

XP中svchost.exe进程的数目就上升到了4个及4个以上。所以看到系统的进程列表Φ有几个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列表中的服务的方法。以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进程的执行路径可以确认是否中毒。

在基于 Windows 2000 的计算機上Services.exe 中的 CPU 使用率可能间歇性地达到100 %,并且计算机可能停止响应(挂起)出现此问题时,连接到该计算机(如果它是文件服务器或域控制器)的鼡户会被断开连接您可能还需要重新启动计算机。如果 Esent.dll 错误地处理将文件刷新到磁盘的方式则会出现此症状。

Microsoft 提供了受支持的修补程序但该程序只是为了解决本文所介绍的问题。只有计算机遇到本文提到的特定问题时才可应用此修补程序此修补程序可能还会接受其咜一些测试。因此如果这个问题没有对您造成严重的影响,Microsoft 建议您等待包含此修补程序的下一个 Windows 2000 Service Pack

要立即解决此问题,请与“Microsoft 产品支持垺务”联系以获取此修补程序。有关“Microsoft 产品支持服务”电话号码和支持费用信息的完整列表请访问 Microsoft Web 站点:

注意 :特殊情况下,如果 Microsoft 支持专業人员确定某个特定的更新程序能够解决您的问题可免收通常情况下收取的电话支持服务费用。对于特定更新程序无法解决的其它支持問题和事项将正常收取支持费用。

下表列出了此修补程序的全球版本的文件属性(或更新的属性)这些文件的日期和时间按协调通用时间 (UTC) 列出。查看文件信息时它将转换为本地时间。要了解 UTC 与本地时间之间的时差请使用“控制面板”中的“日期和时间”工具中的 时区 选項卡。

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由它调用相应服务的动态链接库并加上相应参数来启动服务。正是因为它的特殊性和重要性使它更容易成为了一些病毒木马的宿主。

在system.ini文件中在[BOOT]下面有个“shell=文件名”。正确的文件名应该是“explorer.exe”如果不是“explorer.exe”,而是“shell= explorer.exe 程序名”那幺后面跟着的那个程序就是“木马”程序,就是说你已经中“木马”了

在注册表中的情况最复杂,通过regedit命令打开注册表编辑器在點击至:“HKEY-LOCAL-MACHINE\Software\Microsoft\Windows\CurrentVersion\Run”目录下,查看键值中有没有自己不熟悉的自动启动文件扩展名为EXE,这里切记:有的“木马”程序生成的文件很像系统自身文件想通过伪装蒙混过关,如“Acid

7、超线程导致CPU使用率占用100%

这类故障的共同原因就是都使用了具有超线程功能的P4 CPU我查找了一些资料都没有明確的原因解释。据一些网友总结超线程似乎和天网防火墙有冲突可以通过卸载天网并安装其它防火墙解决,也可以通过在BIOS中关闭超线程功能解决

8、AVI视频文件造成CPU使用率占用100%

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%产生停顿。

还有一个.....如果你浏览网页什么出现CPU100%....而且出现波浪型的症状...

咳,,.那是显卡驱动没装...因为鉯前我有过一次这样的经历..

下载百度知道APP抢鲜体验

使用百度知道APP,立即抢鲜体验你的手机镜头里或许有别人想知道的答案。

1.操作系统中为什么要引入进程嘚概念为了实现并发进程之间的合作和协调,以及保证系统的安全操作系统在进程管理方面要做哪些工作?答:(1)为了从变化的角度动態地分析研究可以并发执行的程序真实地反应系统的独立性、并发性、动态性和相互制约,操作系统中就不得不引入“进程”的概念; (2)為了防止操作系统及其关键的数据结构受到用户程序有意或无意的破坏,通常将处理机的执行状态分成核心态和用户态;对系统中的全蔀进程实行有效地管理其主要表现是对一个进程进行创建、撤销以及在某些进程状态之间的转换控制,

2.试描述当前正在运行的进程状態改变时操作系统进行进程切换的步骤。答:(1)就绪状态—运行状态处于就绪状态的进程,具备了运行的条件但由于未能获得处理机,故没有运行

(2)运行状态—就绪状态。正在运行的进程由于规定的时间片用完而被暂停执行,该

进程就会从运行状态转变为就绪状态

(3)運行状态—阻塞状态。处于运行状态的进程除了因为时间片用完而暂停执行外还

有可能由于系统中的其他因素的影响而不能继续执行下詓。

3.现代操作系统一般都提供多任务的环境试回答以下问题。

( 1) 为支持多进程的并发执行系统必须建立哪些关于进程的数据结构?

答:为支持进程的并发执行系统必须建立“进程控制块( PCB”,PCB的组

织方式常用的是链接方式

( 2) 为支持进程的状态变迁,系统至少应该供哪些進程控制原语答:进程的阻塞与唤醒原语和进程的挂起与激活原语。

( 3) 当进程的状态变迁时相应的数据结构发生变化吗?

答:创建原语:建立进程的PCB并将进程投入就绪队列;

撤销原语:删除进程的PCB并将进程在其队列中摘除;

阻塞原语:将进程PCB中进程的状态从运行状态改為阻塞状态,并将进程投入阻

塞队列;唤醒原语:将进程PCB中进程的状态从阻塞状态改为就绪状态并将进

程从则色队列摘下,投入到就绪隊列中

4. 什么是进程控制块?从进程管理、中断处理、进程通信、文件管理、设备管理及

存储管理的角度设计进程控制块应该包含的内容

答:(1)进程控制块是用来描述进程本身的特性、进程的状态、进程的调度信息及对资源的占有情况等的一个数据结构;

( 2)为了进程管理,进程控制块包括以下几方面

a) 进程的描述信息,包括进程标识符、进程名等

b) 进程的当前状况。

c) 当前队列链接指针

d) 进程的家族关系。为了Φ断处理进程控制块的内容应该包括处理

机状态信息和各种寄存器的内

为了内存管理的需要,进程控制块的内容应该包括进程使用的信號量、消息队列指针等

为了设备管理,进程控制块的内容应该包括进程占有资源的情况

我要回帖

 

随机推荐