1,线程和进程的联系和区别是什么?
每个进程都有独立的内存空间,系统资源,而多线程却共享一块内存空间。线程被称为轻负荷进程。
2什么是前台线程,什么是后台线程?
前台线程和后台线程唯一区别就是:应用程序必须运行完所有的前台线程才可以退出而对于后台线程,应用程序则可以不考虑其是否已经运行完毕而直接退出,所有的后台线程在应用程序退出时都会自动结束。
3创建线程有几种方法,它们之间的区别是什么?
有两种方法,第一种是继承thread类,第二种是实现runnable接口,第二种更好,因为可以继承
4线程的生命周期有几种状态,那些方法可以改变这些状态?
新状态,可运行,运行,阻塞,死亡。
join()函数,睡眠
5什么是线程安全,为什么会产生线程安全问题,如何解决线程安全问题
当有多个线程同时进行时,有可能同时调用一个语句,导致结果出错,可以用synchronized来锁线程,这样就可以只让一个线程进入语句块,以防线程安全问题出现。
6什么时线程的同步通信,同步通信又是如何实现的?
线程同步通信是在有多个线程时,线程之间可以互相告知对方什么时候运行,在函数中加入线程锁,然后定义一个布尔类型的变量,在函数中通过改变变量的值来达到线程通信。
7什么是死锁
当有两个线程同时运行,但是都需要对方的值,都运行不下去,造成了死锁