
多线程
寒青~
这个作者很懒,什么都没留下…
展开
-
JavaSE 多线程(线程的常用方法)
线程常用方法: 1.start(): 启动当前线程;调用当前线程的run(); 2.run(): 通常重写需要重写Thread类中的此方法,将创建的线程要执行的操作声明在此方法中。 3.currentThread(): 静态方法,返回执行当前代码的线程。 4.getName(): 获取当前线程的名字; 5.setName(): 设置当前线程的名字 6.yield(): 一旦执行此方法时候,释放当前CPU的执行 在线程一为0时候。可以被20整除,CPU切换另一个线程。 7.join(): 在线程A中调用线原创 2020-06-22 22:39:52 · 149 阅读 · 0 评论 -
JavaSE 多线程(线程的通信)
一:线程的通信: 首先我们来看一个例子: 使用两个线程打印1-100.线程1,线程2 交替打印 此程序设计到三个方法: wait(): 一旦执行次方法,当前线程就进入阻塞状态,并释放同步监视器(锁)。 notify(): 一旦执行此方法,就会唤醒wait的一个线程。如果多个线程被wait,就唤醒优先级高的线程。 nodifyAll(): 一旦执行此方法,就会唤醒所有被wait的线程。 说明: 1.wait(),notify(),notifyAll()三个方法必须使用在同步代码块或同步方法中。 2.wa原创 2020-06-22 21:16:50 · 176 阅读 · 0 评论 -
JavaSE 多线程(死锁)
一:线程的生命周期: 新建:当一个线程被创建的时候,新生的线程处于新建状态 就绪:处于新建状态的线程被start()后,将进入线程队列等待CPU时间片,此时它已具备运行条件,只是没分配到CPU资源。 运行:当就绪的线程被调度并获得CPU资源时,边进入运行状态,run()方法定义了线程的操作和功能。 阻塞:在某种特殊情况下,被人为挂起或执行输入输出操作时,让CPU临时终止自己的执行,进入阻塞状态。 死亡:线程 完成它的全部工作、线程被提前强制性终止、出现异常导致结束。 二:死锁: 1.理解: ①不同线程分别原创 2020-06-20 18:30:44 · 109 阅读 · 0 评论 -
Java SE 多线程(线程的同步)
线程的安全性 首先我们来看一个例子: 创建3个窗口卖票,总票数100张; 运行结果为: 1.**问题:**卖票过程中出现了重票、错票 -----> 出现了的安全问题 2.**原因:**当某个线程来操作车票的过程中,尚未操作完成时,其他线程参与过来,因为操作车票。 3.**解决:**当一个线程a在操作ticket的时候,其他线程不能参与进来。直到线程a操作完ticket的时候,其他线程才可以操作ticket。这种情况即使线程a出现了阻塞,也不能被改变。在java 中通过使用同步机制解决线程安全问题原创 2020-06-20 14:43:36 · 143 阅读 · 0 评论