java中的线程Thread

先来了解几个概念:

进程:正在运行的程序成为进程,不同进程之间有独立的内存空间.

线程:一个进程至少有一个线程,线程之间共享内存空间.java中的main方法,就是主线程 main trhead.

并行:两个或多个事件在同一时刻发生,成为并行

并发:两个或多个事件在极小的时间段(毫秒级)发生,成为并发.


java中Thread类及其子类才能成为线程,创建线程通常有两种方式:

1.继承Thread,并覆写run()方法

2.实现Runnable接口,并实现run方法.

设计多线程访问共享资源的时候,应该选择实现Runnable接口方式,否则选用继承方式。

//针对多线程并发访问共享资源出现的问题,有三种解决方案

//1.同步代码块

//2.同步方法

//3.锁机制

//下面演示第一种方法,同步代码块,也叫同步锁,互斥锁等名字

//使用synchronized关键字synchronized(mutex),mutex表示需要监听,加锁的资源.

//千万不能用synchronized修饰run方法,否则单个线程会把任务执行完,出现串行现象,多线程就没有意义了。解决方法是定义一个新的方法用synchronized,在run方法中调用。

同步锁,互斥锁,同步监听器,同步监听对象是同一个概念。对于synchronized,如果是实例方法,同步监听对象就是this


锁机制

1.import java.util.concurrent.locks.ReentrantLock;

ReentrantLock lock = new ReentrantLock();

//进入方法,立刻加锁

lock.lock();

try{

//逻辑代码

}finally{

lock.unlock();//释放同步锁

}

多线程的例子具体看我的博客文章:

https://blog.csdn.net/linchengshen_/article/details/80517498

你可能感兴趣的:(java中的线程Thread)