当前位置: 首页 > 编程日记 > 正文

sleep和wait到底什么区别

wait是在当前线程持有wait对象锁的情况下,暂时放弃锁,并让出CPU资源,并积极等待其它线程调用同一对象的notify或者notifyAll方法。注意,即使只有一个线程在等待,并且有其它线程调用了notify或者notifyAll方法,等待的线程只是被激活,但是它必须得再次获得锁才能继续往下执行。换言之,即使notify被调用,但只要锁没有被释放,原等待线程因为未获得锁仍然无法继续执行。

wait方法需要释放锁,前提条件是它已经持有锁。所以wait和notify(或者notifyAll)方法都必须被包裹在synchronized语句块中,并且synchronized后锁的对象应该与调用wait方法的对象一样。否则抛出IllegalMonitorStateException

sleep方法告诉操作系统至少指定时间内不需为线程调度器为该线程分配执行时间片,并不释放锁(如果当前已经持有锁)。实际上,调用sleep方法时并不要求持有任何锁。

转载于:https://www.cnblogs.com/paulbai/p/6156156.html

相关文章:

Swift Code Snippet

1 swi_crecell func numberOfSections(in tableView: UITableView) -> Int {return 1;}func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {return 5;}// cell高度func tableView(_ tableView: UITableView, heightForRowAt indexPa…

Cocos2d-x lua 编译到Android设备

需要完成Android下ant,ndk,sdk(adt)的环境配置.Java环境配置. 也可以搭建VS下的Lua开发环境. 首先新建项目 cocos new -l lua -d (...address) 然后编译 cocos run -p win32 -s (...address) --ap 19 后面的--ap 19是版本控制. 然后在Eclipse中Import项目,右键项目Build Path添…

c# 数据可视化_#OpenVisConf上的22位数据可视化从业者的10点收获

c# 数据可视化by Siena Duplan通过锡耶纳杜普兰(Siena Duplan) #OpenVisConf上的22位数据可视化从业者的10点收获 (10 Takeaways from 22 Data Visualization Practitioners at #OpenVisConf) Update | May 13, 2016: Videos of all talks are officially live!更新| 2016年5月…

CentOS中Mysql常用操作

安装mysqlyum -y install mysql-server 修改mysql配置vi /etc/my.cnf 这里会有很多需要注意的配置项,后面会有专门的笔记暂时修改一下编码(添加在密码下方): default-character-set utf8设置mysql随系统启动# chkconfig mysqld on ← 设置MySQL服务随系统启动自启动# chkcon…

RXSwift基本使用1

1 cocoapod 安装 import RxSwift import RxCocoa 2 给一个按钮添加点击事件 // 添加点击事件self.rightBtn.rx.tap.subscribe { (event) in}

添加MySql数据库超时设置的相关问题

最近在工作中, 遇到MySql数据库连接超时的问题,申同事帮忙解决了一下,看到原来的MySqlHelper里面没有封装相关的超时方法,就添加了一个,我在这里记录了一下,希望对像我一样入门级的程序员有所帮助&#xff…

了解ES6 The Dope Way Part II:Arrow功能和'this'关键字

by Mariya Diminsky通过玛丽亚迪明斯基(Mariya Diminsky) 了解ES6 The Dope Way Part II:Arrow功能和this关键字 (Learn ES6 The Dope Way Part II: Arrow functions and the ‘this’ keyword) Welcome to Part II of Learn ES6 The Dope Way, a series created t…

[转载]Matlab之静态文本多行输出

转载文章,原文链接:Matlab中的静态文本框中显示多行内容 有时候,我们在GUI中利用静态文本框显示程序的结果,但是结果很长,一行未必可以显示的开,而静态文本框不像edit或listbox那样通过滚动条来显示多行内容…

1-Swift中的Struct 和 Class

1 为什么swift 推荐使用struct类型 在swift中是推荐使用struct类型的,值类型的变量在赋值的时候会自动进行一次低消耗的值拷贝 对比与对象的拷贝更加高效且不存在线程安全问题。 2 Struct 的概述 Swift语言中非常重视结构体,把结构体作为实现面向对象…

rwkj 1422搜索(素数环)

算法分析与设计:搜索(素数环) 时间限制(普通/Java):1000MS/3000MS 运行内存限制:65536KByte 总提交:178 测试通过:35 描述 将1-n这n个数摆成一个环,要求相邻的两个数的和是一个素数,编程输出所有可…

不断的困惑:为什么我仍然使用JavaScript函数语句

Back in the late 90’s — when I learned JavaScript — we were taught to write the “Hello World” function using a function statement. Like this…上世纪90年代后期(当我学习JavaScript时),我们被教导使用函数语句编写“ Hello World”函数。 像这样… …

Tif文件合并类

using System; using System.Collections; using System.Collections.Generic; using System.Drawing; using System.Drawing.Imaging; using System.IO; using System.Linq;namespace Common {/// <summary>/// Title Tif文件合并类/// Author&#xff1a;ward/// </…

ubuntu /boot 空间清理

本文引用自 blog.csdn.net/yypony/article/details/17260153方法&#xff1a; 1&#xff1a; 在终端下察看已经安装的旧的内核&#xff1a; ctrlaltt——>进入终端——>输入命令&#xff1a;dpkg --get-selections|grep linux给 /boot文件目录分配空间的时候&#xff0c;…

Swift default参数

swift 支持默认参数&#xff0c;在声明方法的时候&#xff0c;可以给某个参数制定一个默认的使用值&#xff0c;当没有传入值的时候&#xff0c;使用默认的参数&#xff0c;当传入值存在的时候&#xff0c;使用对应的传入值 import UIKitvar str "Hello, playground&quo…

vs2017 open从v_宣布#Open2017,这是面向开发人员的除夕直播流

vs2017 open从vHere are a few reasons to stay home this New Year’s Eve:这是除夕之夜留在家里的一些理由&#xff1a; It’s the worst day of the year for fatal drunk driving deaths 这是致命的酒后驾车致死的一年中最糟糕的一天 It’s crowded 拥挤 It’s freaking c…

Laravel Predis Error while reading line from the server.

问题 Laravel说明文档中的 Redis 发布与订阅案例&#xff0c;命令行运行php artisan redis:subscribe 到60s自动断开并报错 [Predis\Connection\ConnectionException]Error while reading line from the server. [tcp://127.0.0.1:6379]解决 在config/database.php配置文件中&a…

android 带边框的圆角按钮

新建buttonstyle.xml 代码如下 <?xml version"1.0" encoding"UTF-8"?> <layer-list xmlns:android"http://schemas.android.com/apk/res/android"> <!-- 连框颜色值 --><item> <shape> <solid andr…

Swift 字面量表达

字面量是一个很强大的特性&#xff0c;对于缩短代码很有帮助 // // 1 字面量就是 简洁明了指出自己的类型并且为变量赋值的的值 // tom false 称之为字面量 let dog:String "tom"; let ok false;// Array 和 Dictionary 赋值的时候也是使用的字面量 let animals:Ar…

韩国文档的编码方式_像韩国学生学习英语一样学习编码

韩国文档的编码方式by Stephen Mayeux斯蒂芬马约(Stephen Mayeux) 像韩国学生学习英语一样学习编码 (Learn to code like a Korean student learns English) If this is the first you’ve heard of me, then there’s only one thing you need to know: I am an ESL Teacher …

mysql乱码解决

在 /etc/my.cnf加上下面二句&#xff1a; skip-character-set-client-handshakecharacter-set-server utf8转载于:https://www.cnblogs.com/sweetXiaoma/p/6170979.html

LoaderManager使用具体解释(三)---实现Loaders

这篇文字将介绍Loader<D>类&#xff0c;而且介绍自己定义Loader的实现。这是本系列的第三篇文章。一&#xff1a;Loaders之前世界二&#xff1a;了解LoaderManager三&#xff1a;实现Loaders四&#xff1a;实例&#xff1a;AppListLoader重中之重&#xff0c;假设你还没有…

Swift 条件编译,编译标记

1 swift 中的条件编译跟OC中的形式是相同的 #if DEBUGself.navigationView.backgroundColor Color_ff3b30;#elseself.navigationView.backgroundColor Color_main;#endif条件可以接受 os(MacOS) ,参数iOS tvOS等平台 arch(),参数为平台架构组合 arm64 ,i386 swift(),参数为版…

代码简介:向圣诞老人和他的精灵学习Google Analytics(分析)

Here are three stories we published this week that are worth your time:这是我们本周发布的三个值得您关注的故事&#xff1a; Learn Google Analytics from Santa and his elves: 12 minute read 向圣诞老人和他的精灵学习Google Analytics(分析)&#xff1a; 阅读12分钟…

生物信息大数据数据库(NCBI、EBI、UCSC、TCGA)

想系统的学习生信数据库可以先看一下北大的公开课&#xff0c;有一章专门讲的数据库与软件&#xff1a; 1-生物信息学&#xff1a;导论与方法 北大\10 生物信息数据库及软件资源 一个优秀的生信开发者能够解决如下问题&#xff1a; 如何鉴定一个重要的且没有被解决的生物学问题…

Dispatch 执行ABC任务,执行完成之后刷新UI,指定任务D

在swift中分组管理异步任务的方式 1 group enter 和 leave 进行同步管理 func method1() {// 创建一个组 &#xff0c;要是在一个控制器中去规划请求顺序&#xff0c;则这个组要是全局的组let group DispatchGroup();let queue DispatchQueue.global();//let imgsArr [&qu…

关于页游垂直同步的若干问题

这个问题要从人眼感觉抖动的原因来分析第一种情况是常说的屏幕撕裂&#xff0c;就是垂直同 步的事情&#xff0c;可以简单理解为显存的数据更新跟屏幕的绘制刷新缺少同步&#xff0c;一次屏幕刷新的结果可能是多次显存更新的片段集合&#xff0c;这种情况只能使用更接近垂直同步…

javascript函数式_JavaScript中的函数式编程—结合实际示例(第1部分)

javascript函数式by rajaraodv通过rajaraodv JavaScript中的函数式编程—结合实际示例(第1部分) (Functional Programming In JavaScript — With Practical Examples (Part 1)) Functional Programming(FP) can change the way you program for the better. But it’s hard t…

简介子窗口控件(api)

子窗口控件 壹佰软件开发小组 整理编译 回忆第七章的CHECKER程序。这些程序显示了矩形网格。当您在一个矩形中按下鼠标按键时&#xff0c;该程序就画一个x&#xff1b;如果您再按一次鼠标按键&#xff0c;那么x就消失。虽然这个程序的CHECKER1和CHECKER2版本只使用一个主窗口…

【MongoDB学习之一】初始MongoDB

环境 MongoDB4.0 win7_x64 CentOS6.5_x64 一、MongoDB简介 (1)MongoDB使用C开发。 (2)MongoDB 旨在为WEB应用提供可扩展的高性能数据存储解决方案。 (3)MongoDB 将数据存储为一个文档。MongoDB是一个基于分布式文件存储的数据库。 (4)MongoDB使用BSON作为数据存储…

swift 和 oc中检测textfield是否输入数字

iOS 开发中用来检测输入框是否输入的是纯数字 Swift 版本 // 代理方法func textField(_ textField: UITextField, shouldChangeCharactersIn range: NSRange, replacementString string: String) -> Bool {//判断输入的是否是数字 否则无效var cs CharacterSet();// 获取除…