线程
线程
是进程中的一个实体,是被系统独立调度和分派的基本单位,线程自己不拥有系统资源,只拥有一点在运行中必不可少的资源,但它可与同属一个进程的其它线程共享进程所拥有的全部资源。一个线程可以创建和撤消另一个线程,同一进程中的多个线程之间可以并发执行。由于线程之间的相互制约,致使线程在运行中呈现出间断性。线程也有就绪、阻塞和运行三种基本状态。
线程是程序中一个单一的顺序控制流程.在单个程序中同时运行多个线程完成不同的工作,称为多线程. 线程和进程的区别在于,子进程和父进程有不同的代码和数据空间,而多个线程则共享数据空间,每个线程有自己的执行堆栈和程序计数器为其执行上下文.多线程主要是为了节约CPU时间,发挥利用,根据具体情况而定. 线程的运行中需要使用计算机的内存资源和CPU 线程的周期 新建 就绪 运行 阻塞 死亡 线程调度与优先级 有线程进入了就绪状态,需要有线程调度程序来决定何时执行,根据优先级来调度. 线程组 每个线程都是一个线程组的一个成员,线程组把多个线程集成一个对象,通过线程组可以同时对其中的多个线程进行操作.在生成线程时必须将线程放在指定的线程组,也可以放在缺省的线程组中,缺省的就是生成该线程的线程所在的线程组.一旦一个线程加入了某个线程组,不能被移出这个组. 守护线程 是特殊的线程,一般用于在后台为其他线程提供服务. isDaemon():判断一个线程是否为守护线程. set Daemon():设置一个线程为守护线程. Thread类和Runnable接口 Thread类 类Thread在包java.lang中定义,它的构造方法如下: public Thread(); public Thread(Runnable target); public Thread(Runnable target,String name); public Thread(String name); public Thread(ThreadGroup group,Runnable target); public Thread(ThreadGroup group, String name); 主要方法 isActive() 判断是否处于执行状态 Suspend() 暂停执行 reSume 恢复执行 start() 开始执行 Stop() 停止执行 sleep() 睡眠 run() 程序体 yield() 向其他线程退让运行权 线程优先级 Public statuc final int MAX_PRIORITY最高优先级,10 Public statuc final int MIN_PRIORITY最低优先级,1 Public statuc final int NORM_PRIORITY普通优先级,5 Runnable接口 Runnable接口中只定义了一个方法run()作为线程体, void run() |