线程的五种状态:1.新建状态
2.就绪状态
3.执行状态
4.阻塞状态
5.死亡状态
1.如何实现一个多线程?
答: 1. 继承(extends)Thread 2. 实现(implements) Runnable 接口 要重写run()方法
Runnable 不具备线程的生命周期,随程序的结束而结束.相对而言Runnable接口比较灵活。
2.进程和线程有什么区别?
答:1.进程是独享系统资源的。
2.线程是进程的细分。
3.一个进程包含多个线程。
3.请说出你知道线程同步的方法?
答: wait(); sleep(); notifg(); notifgAll();
4.并发与并行有什么区别?
答:并发是一个CPU服务多个线程。
并行是多个CPU服务多个线程。
5.Join能造成死锁吗?在什么情况下会造成
答:能,只有在本类中,用当前的对象调用Join方法,就会造成死锁。
6.如何把一个用户线程变成一个精灵线程?
答:在用户线程调用start()之前,调用setDaemon(),把它变成精灵线程。
只有把用户线程变成精灵线程,精灵线程不能变成用户线程。
精灵线程不具备生命周期,随着虚拟机的结束而结束.
2.就绪状态
3.执行状态
4.阻塞状态
5.死亡状态
1.如何实现一个多线程?
答: 1. 继承(extends)Thread 2. 实现(implements) Runnable 接口 要重写run()方法
Runnable 不具备线程的生命周期,随程序的结束而结束.相对而言Runnable接口比较灵活。
2.进程和线程有什么区别?
答:1.进程是独享系统资源的。
2.线程是进程的细分。
3.一个进程包含多个线程。
3.请说出你知道线程同步的方法?
答: wait(); sleep(); notifg(); notifgAll();
4.并发与并行有什么区别?
答:并发是一个CPU服务多个线程。
并行是多个CPU服务多个线程。
5.Join能造成死锁吗?在什么情况下会造成
答:能,只有在本类中,用当前的对象调用Join方法,就会造成死锁。
6.如何把一个用户线程变成一个精灵线程?
答:在用户线程调用start()之前,调用setDaemon(),把它变成精灵线程。
只有把用户线程变成精灵线程,精灵线程不能变成用户线程。
精灵线程不具备生命周期,随着虚拟机的结束而结束.