美文网首页
我所知道的线程

我所知道的线程

作者: leiheng | 来源:发表于2017-11-05 12:04 被阅读0次
  • extend Thread
  • implements Runnable
工具类创建线程 (未完成)
  • synchronied 修饰方法和修饰代码块(在阿里Java手册中提到能锁代码块就不要所方法尽量提高性能)

  1. 修饰方法时:this 引用的当前实例持有锁
sychronized void method(){...}
  1. 修饰代码块: 指定对象
sychronized(object){...}
  • sleep、wait、join、yield

  1. wait 一定要有锁,当线程wait时,释放锁进入等待队列,用 notify 和 notifyAll 唤醒。wait 和 notify/notifyAll 一定要同步,否则会出现 IllegalMonitorStateException异常。
  2. sleep 是线程进入睡眠状态,持有锁,并不是释放锁。
  3. join 是等待上一个线程结束,相当于收拾好自己的箱子再去干其他事。
  4. yield 是放弃对已经持有锁的代码块/方法,重新竞争,再次持有锁的不一定是上一个持有锁的线程。
  • volatile

volatile其实并不能保证变量的原子性,他其实就是在修改一个变量之后,并不把修改后的写入缓存区,而是直接呈现出来的及时性。

相关文章

  • 我所理解的多线程

    我所理解的多线程。 new Thread(new Runnable() { @Override public ...

  • 我所知道的线程

    Concurrent(未完成) 创建一个线程 extend Threadimplements Runnable工具...

  • js单线程与异步编程

    1.js的单线程 从开始接触js我们就知道js是单线程的。单线程在程序执行时,所走的程序路径按照连续顺序排下来,前...

  • Java 线程池艺术探索

    关注我 线程池 Wiki 上是这样解释的:Thread Pool 作用:利用线程池可以大大减少在创建和销毁线程上所...

  • 进程与线程

    线程是属于进程的,线程运行在进程空间内,同一进程所产生的线程共享同一内存空间,当进程退出时该进程所产生的线程都会被...

  • JAVA并发编程(六):线程本地变量ThreadLocal与Tr

    我们知道有时候一个对象的共享变量会被多个线程所访问,这时就会有线程安全问题。当然我们可以使用synchoriniz...

  • 对线程池的理解和原理简记

    线程池简介 线程池的优点 重用线程池中的线程,避免因为线程的创建和销毁所带来的性能开销 能有效控制线程池的最大并发...

  • Android中的线程池

    Android中的线程池 线程池的优点: 重用线程池的线程,避免因为线程的创建和销毁所带来的性能开销; 能有效的控...

  • java多线程

    主线程:JVM调用程序main()所产生的线程。 当前线程:一般指通过Thread.currentThread()...

  • 我所让你知道的

    这并不是全部 我所让你知道的 仅仅是我想让你知道的 而你不知道的 却并不是我不想让你知道的 只是我不知道该用 何种...

网友评论

      本文标题:我所知道的线程

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