美文网首页
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