美文网首页
线程常用的几种方法的区别

线程常用的几种方法的区别

作者: DH大黄 | 来源:发表于2020-05-18 10:49 被阅读0次
方法 所属对象 是否会释放锁 作用
sleep Thread 不会释放锁 让线程进入睡眠(线程睡眠期间CPU不会再分配时间片给当前线程)
yeild Thread 会释放锁 告诉CPU当前线程执行的差不多了,让出CPU时间片,回到可执行的状态(可能又回马上执行)
wait notify/notifyAll Object 会释放锁 必须放在同步代码块中执行<br />进入线程等待池等待被唤醒(可能会马上就会被唤醒)

1.为什么wait,notify/notifyAll被定义在对象内,而sleep被定义在线程内

因为wait,notify/notifyAll都是锁级别的操作,Java每一个对象都可以进行上锁。Java线程中没有可以供任何对象使用的锁和同步器,所以他们被定义在了对象内

2.调用Thread.wait会怎么样

此处Thread也是一个对象,线程执行退出时会自动执行notify,这样对我们的程序设计会有影响

相关文章

  • 线程常用的几种方法的区别

    方法所属对象是否会释放锁作用sleepThread不会释放锁让线程进入睡眠(线程睡眠期间CPU不会再分配时间片给当...

  • python多线程和多进程

    Table of Contents 线程概念进程与线程的区别线程常用方法线程常用方法普通创建方式重写类,来实现启动...

  • 多线程汇总

    1 常用多线程有哪几种?他们的区别是什么? NSThread 创建/启动线程 NSThread *thread =...

  • NSTimer用法与循环引用

    首先介绍NSTimer的几种创建方式 常用方法 三种方法的区别是: scheduledTimerWithTimeI...

  • 线程

    线程和进程 进程 线程 线程和进程的区别 线程的好处和坏处 创建线程的方式一 线程中常用的方法 代码实例 创建线程...

  • 线程池相关

    线程池 1.几种常用的线程池 包括:newSingleThreadExecutor、newFixedThreadP...

  • iOS多线程

    整理下几种常用的处理多线程的类,并将该类对应的常用方法整理下,采用简单直观的例子展示。 1、NSThread NS...

  • iOS 开发中 runtime 常用的几种方法

    iOS 开发中 runtime 常用的几种方法 iOS 开发中 runtime 常用的几种方法

  • 精选30道Java多线程面试题

    ​ 1、线程和进程的区别 2、实现线程有哪几种方式? 3、线程有哪几种状态?它们之间如何流转的? 4、线程中的st...

  • Executors

    Executors生成常用的几种线程池执行者 可缓存线程池 定长的线程池 定时线程池 ScheduledThrea...

网友评论

      本文标题:线程常用的几种方法的区别

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