1:进程:是一个应用程序,所有线程的集合,而每一条线程就是进程中的每一条执行路径。(打开爱奇艺就是一个进程,而我们在里面同时下几个电视就是多个现程)
2:为什么需要多线程呢?就是为了提高程序的效率。(迅雷多线程下载,短信分批发送)。
3:创建线程的实现方式:1)继承Thread
2)实现Runnable接口 3)匿名内部类
3:什么是线程安全呢?就是多个线程同时共享时,同一个全局变量或者静态变量,在做写的操作的同时,可能会发生数据冲突的问题,也就是线程安全问题,但是在读的操作时是不会操作数据冲突的。如图所示会出现票数为101,那是因为2个线程同时去访问了这个count产生冲突了,那如何解决呢?
4:线程不安全如何解决? 1):使用 同步代码块(使用自定义锁) 包裹你要同步的代码块 2)使用同步函数 (同步函数是this锁),会自动释放锁 3)使用lock,需要手动释放锁
5:什么是同步代码块:将发生线程安全的代码包裹起来。让当前一个线程执行,执行完后释放资源,再让其他的的线程去执行。
5:静态同步函数,加static,怎么实现非静态和静态方法同步?非静态上this锁,静态上线程类锁既(X.class)
6:死锁:同步中嵌套同步,线程拿着锁都不释放。解决方法:尽量同步中不要嵌套同步