目录
一.什么线程
1.概念:
(1).进程:就是一个有独立功能并且可现实的程序。比如我们打开一个QQ、腾讯会议等等都属于进程。
(2).线程:共享进程资源的一句或者一段代码都可以是一个线程。如:int i = 0; 或者 System.Out.Print(i);
(3).进程与线程的关系:一个进程至少有一个线程,线程是进程的一部分,所以线程也被称为轻 权级进程或者轻量级进程。
(4).并发:一段可近似忽略的时间内,多个线程同时(其实是交替执行)执行的。
(5).并行:同一时刻,多个线程同时执行。
二.如何实现
1. 方式一:
(1).继承Thread类。
(2).重写run()方法。
(3).使用 .start()开启线程。
2.方式二
(1).实现Runnable接口。
(2).实现call()方法。
(3).创建线程的对象和Thread对象,并用创建的线程对象作为Thread对象的参数。
(4).打开线程 .start()。
3.方式三
(1).城建线程实现类实现callable接口的call()方法。
(2).实例化线程实现类。
(3).实例化FutureTask类,并且把线程实现类作为参数。
(4).创建Thread类。
(5).start()开启线程。
三.线程可能产生的问题
1.线程安全问题
(1).产生原因:多个线程访问共享资源。
(2).产生条件:必须具备大于等于2个进程才会发生线程安全问题。
四.线程安全问题解决办法
1.synchronized锁
(1).使用位置:方法上,方法体和synchronized代码块。
(2).锁定代码块执行完自动解锁。
2.lock锁
(1). lock.lock():上锁。
(2). lock.unlock():解锁。
五.疑惑点归纳
.......