java-多线程
青秋5
这个作者很懒,什么都没留下…
展开
-
java——线程间通信的三种方法
1.wait():调用了 Object类中wait()方法的线程进入等待池进行等待,等待池中的线程不去竞争对象锁,直到其它的线程通知,才会进入锁池;2.notify():随机唤醒一个在该对象上等待的线程,被唤醒的线程进行锁池,开始竞争 该对锁上的锁 ;3.notifyAll():唤醒所有在该对象上等待的线程,优先级高的线程有可能(并不是绝对)先竞争到对象锁 只能在同步方法和同步...原创 2019-08-06 15:25:27 · 459 阅读 · 0 评论 -
java——线程的生命周期
线程的生命周期有五个阶段:1.新生状态:用 new 关键字建立一个线程后,该线程对象就处于新生状态。处于新生状 态的线程有自己的内存空间,通过调用 start()方法进入就绪状态。2.就绪状态:处于就绪状态线程具备了运行条件,但还没分配到 CPU,处于线程就绪队 列,等待系统为其分配 CPU。当系统选定一个等待执行的线程后,它就会从就绪状态 进入执行状态,该动作称为“CPU 调度”。3...原创 2019-08-06 15:22:46 · 133 阅读 · 0 评论 -
实现线程同步的第三种方式——Lock锁
前面学习了两种线程同步锁 1)同步方法 同步监视器为当前对象this 2)同步代码块synchronized(同步监视器/共享资源对象){ }线程同步的第三种方法:Lock锁:对需要上锁的地方上锁 1)JDK1.5后新增的功能 2)与Synchronized相比,Lock可提供多种锁方案,更灵活 3)Java.util.concurrent.lo...原创 2019-08-04 22:26:28 · 306 阅读 · 0 评论 -
java深化——实现多线程的第三种方式(实现Callable接口,重写call方法)
前面学习了创建线程的两种方式: 1)继承Thread类 2)实现Runnable接口 这两种方式有如下缺点: 1)没有返回值 2)不支持泛型 3)异常必须处理实现多线程的第三种方式: 实现Callable接口,重写call方法 Callable功能更加强大 1)Future接口位于 java.util.concurre...原创 2019-08-04 22:19:04 · 2270 阅读 · 0 评论 -
java多线程——线程常用的一些方法解释以及线程同步
线程的一些重要的方法Sleep:导致当前线程进入阻塞状态,阻塞的时间达到了指定的时间,当前线程从阻塞状态进入就绪状态,等待cpu 下次调度。在阻塞的过程中,如果当前对象持有监视器对象上的锁,那么该锁不会被释放。 Join:导致当前线程进入阻塞状态,调用join 方法的线程对象优先被调度执行(相对于被阻塞的线程)。被阻塞的线程,当调用join 方法的线程对象执行完毕之后,解除阻塞状态,进入就绪...原创 2019-07-25 09:28:01 · 109 阅读 · 0 评论 -
java多线程——线程的生命周期介绍与运行图
1、新生状态:用 new 关键字建立一个线程后,该线程对象就处于新生状态。处于新生状 态的线程有自己的内存空间, 通过调用start()方法进入就绪状态。2、就绪状态:处于就绪状态线程具备了运行条件,但还没分配到 CPU,处于线程就绪队 列,等待系统为其分配 CPU。 当系统选定一个等待执行的线程后...原创 2019-07-25 09:01:26 · 277 阅读 · 0 评论 -
java深化——实现多线程的两种方式
一、通过继承Thread类实现多线程的步骤: (1)继承Thread (2)重写run()方法 (3)通过Start()方法启动线程 一定的缺点:Java 中的类是单继承的,一旦继承了 Thread 类, 就不允许再去继承其它的类. Thread类实现了Runnable接口,在Thread类中,有一些比较关键的属性,比如name是...原创 2019-07-24 20:34:24 · 132 阅读 · 0 评论 -
多线程基本概念_程序_进程_线程
1.1 程序、进程、线程 程序:Program,是一个指令的集合 进程:Process,(正在执行中的程序)是一个静态的概念,进程是程序的一次静态态执行过程, 占用特定的地址空间. 每个进程都是独立的,由 3 部分组成 cpu,data,code 缺点:内存的浪费,cpu 的负担 线程:是进程中一个“单一的连续控制流程” (a...原创 2019-07-24 20:15:18 · 103 阅读 · 0 评论