美文网首页
java中的线程Thread

java中的线程Thread

作者: 电竞三傻 | 来源:发表于2018-05-30 23:12 被阅读0次

先来了解几个概念:

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

线程:一个进程至少有一个线程,线程之间共享内存空间.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

      本文链接:https://www.haomeiwen.com/subject/pyffsftx.html