Java高级编程7-姜国海 多线程编程

版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/L1558198727/article/details/80980930

基本概念:线程,进程

在下面的这一篇文章中有详细比较
https://blog.csdn.net/l1558198727/article/details/80876519

创建一个线程
Eg:
public class myThread extends Thread{
    public void run(){//覆盖Thread里面的run函数,因为Thread 实现了 Runable接口
        ;
    }
    public static void main(){
        new MyThread().start();
    }
}
调用start函数的时候,并不知道程序是否运行起来,只是放入就绪队列,取决与操作系统的调度,与java代码无关

stop();//终止线程 过时的函数 会给程序带来不确定性
interrupt();//向线程发送打断的请求 由线程自己决定是否退出
Thread的状态:
run 
ready 
dead 线程的最后一个状态,想重新执行,只能再次创建线程
suspend();//暂停函数
resume();//从挂起的语句继续执行
sleep();
    Thread().sleep();静态函数,sleep的时候将释放CPU
setPriority(int newPriority)//设置优先级
yield();//让步函数,由运行状态进入就绪状态,再立刻申请运行,如果可被调度就再次执行 
join(long millis) ;//阻塞函数
    t.join();
setDaemon(boolean on) ;//守护线程 精灵线程 操作系统后台运行提供服务 优先分配CPU
    t1.setDaemon(true);//在start之前设置属性

主线程是用户线程,不是精灵线程

当前虚拟机如果没有任何用户线程在虚拟机中执行,虚拟机宕机

想一个办法,保证至少一个用户线程执行


Object o = new int[0];
展开阅读全文

没有更多推荐了,返回首页