仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1694|回复: 19
打印 上一主题 下一主题

[学习教程] JAVA网站制作之java多线程 sleep()和wait()的区分仓酷云

[复制链接]
若相依 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-18 11:29:30 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
java也能做一些底层语言开发做的事情(难度很高,不是java顶尖高手是做不来的),打仗了一些多线程的工具,仍是从java动手吧。
信任看这篇文章的伴侣都已晓得历程和线程的区分,也都晓得了为何要利用多线程了。
这两个办法次要来历是,sleep用于线程把持,而wait用于线程间的通讯,与wait配套的办法另有notify和notifyAll.
区分一:
sleep是Thread类的办法,是线程用来把持本身流程的,好比有一个要报时的线程,每秒中打印出一个工夫,那末我就必要在print办法后面加上一个sleep让本人每隔一秒实行一次。就像个闹钟一样。
wait是Object类的办法,用来线程间的通讯,这个办法会使以后具有该对象锁的历程守候晓得其他线程挪用notify办法时再醒来,不外你也能够给他指定一个工夫,主动醒来。这个办法次要是用走分歧线程之间的调剂的。
区分二:
关于锁的开释,在这里假定人人已晓得了锁的观点及其意义。挪用sleep办法不会开释锁(本人的感到是sleep办法原本就是和锁没有干系的,由于他是一个线程用于办理本人的办法,不触及线程通讯)
JDK7中的注释:
“publicstaticvoidsleep(longmillis)
throwsInterruptedException
Causesthecurrentlyexecutingthreadtosleep(temporarilyceaseexecution)forthespecifiednumberofmilliseconds,subjecttotheprecisionandaccuracyofsystemtimersandschedulers.Thethreaddoesnotloseownershipofanymonitors.
publicfinalvoidwait()throwsInterruptedException
Causesthecurrentthreadtowaituntilanotherthreadinvokesthenotify()methodorthenotifyAll()methodforthisobject.Inotherwords,thismethodbehavesexactlyasifitsimplyperformsthecallwait(0).Thecurrentthreadmustownthisobjectsmonitor.ThethreadreleasesownershipofthismonitorandwaitsuntilanotherthreadnotifiesthreadswaitingonthisobjectsmonitortowakeupeitherthroughacalltothenotifymethodthenotifyAllmethod.Thethreadthenwaitsuntilitcanre-obtainownershipofthemonitorandresumesexecution.“
挪用wait办法会开释以后线程的锁(实在线程间的通讯是靠对象来办理的,一切操纵一个对象的线程是这个对象经由过程本人的wait办法来办理的,就仿佛这个对象是电视机,三团体是三个线程,那末电视机的远控器就是这个锁,假设如今A拿着远控器,电视机挪用wait办法,那末A就交出本人的远控器,由jVM假造机调剂,远控器该交给谁。)【我想到一个好玩的例子:假如A拿远控器的时代,他能够用本人的sleep每隔非常钟调一次电视台,而在他调台歇息的非常钟时代,远控器还在他的手上~】
区分三:
利用地区
因为wait函数的特别意义,以是他是应当放在同步语句块中的,如许才成心义。
注重:两个办法都必要抛出非常
团体看法:有sleep和wait的第二个区分,引发了我对Java线程机制的一个疑问,今朝还没有看过JDk这方面的源码(实在看了,是木有看懂),线程的同步办理,是否是由对象在调剂,假如是对象在调剂,那末JDK1.5新引进的ReentrantLock机制就比synchronized关头字更值得倡始。由于他更能反应出这么一个机制来。很多多少人不克不及了解wait和sleep的区分,我以为就是由于synchronized关头字的影响。固然本人还不懂JAVA的线程详细完成,留作疑问今后偶然间持续研讨吧
这个小专题貌似是学长学姐们常常面口试的标题,感激他们的履历分享~

主要缺点就是:速度比较慢,没有C和C++快
小女巫 该用户已被删除
沙发
发表于 2015-1-21 07:51:57 | 只看该作者
有时间再研究一下MVC结构(把Model-View-Control分离开的设计思想)
谁可相欹 该用户已被删除
板凳
发表于 2015-1-22 22:31:45 | 只看该作者
是一种语言,用以产生「小应用程序(Applet(s))
飘飘悠悠 该用户已被删除
地板
发表于 2015-1-26 23:43:57 | 只看该作者
自从Sun推出Java以来,就力图使之无所不包,所以Java发展到现在,按应用来分主要分为三大块:J2SE,J2ME和J2EE,这也就是Sun ONE(Open Net Environment)体系。J2SE就是Java2的标准版,主要用于桌面应用软件的编程;J2ME主要应用于嵌入是系统开发,如手机和PDA的编程;J2EE是Java2的企业版,主要用于分布式的网络程序的开发,如电子商务网站和ERP系统。
再现理想 该用户已被删除
5#
发表于 2015-2-4 20:13:24 | 只看该作者
J2SE开发桌面应用软件比起 VC,VB,DEPHI这些传统开发语言来说,优势好象并不明显。J2ME对于初学者来说,好象又有点深奥,而且一般开发者很难有开发环境。
山那边是海 该用户已被删除
6#
发表于 2015-2-10 06:00:48 | 只看该作者
《JAVA语言程序设计》或《JAVA从入门到精通》这两本书开始学,等你编程有感觉的时候也可以回看一下。《JAVA读书笔记》这本书,因为讲的代码很多,也很容易看懂,涉及到面也到位。是你学习技术巩固的好书,学完后就看看《JAVA编程思想》这本书,找找一个自己写的代码跟书上的代码有什么不一样。
简单生活 该用户已被删除
7#
发表于 2015-2-28 22:19:07 | 只看该作者
科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。
灵魂腐蚀 该用户已被删除
8#
发表于 2015-3-4 03:35:51 | 只看该作者
Java是一个纯的面向对象的程序设计语言,它继承了 C++语言面向对象技术的核心。Java舍弃了C ++语言中容易引起错误的指针(以引用取代)、运算符重载(operator overloading)
精灵巫婆 该用户已被删除
9#
发表于 2015-3-8 11:44:11 | 只看该作者
象、泛型编程的特性,广泛应用于企业级Web应用开发和移动应用开发。
柔情似水 该用户已被删除
10#
发表于 2015-3-15 22:26:19 | 只看该作者
还好,SUN提供了Javabean可以把你的JSP中的 Java代码封装起来,便于调用也便于重用。
乐观 该用户已被删除
11#
发表于 2015-3-22 17:09:26 | 只看该作者
不过,每次的执行编译后的字节码需要消耗一定的时间,这同时也在一定程度上降低了 Java 程序的运行效率。
因胸联盟 该用户已被删除
12#
发表于 2015-3-22 19:10:53 | 只看该作者
Sun公司看见Oak在互联网上应用的前景,于是改造了Oak,于1995年5月以Java的名称正式发布。Java伴随着互联网的迅猛发展而发展,逐渐成为重要的网络编程语言。
金色的骷髅 该用户已被删除
13#
发表于 2015-3-22 21:16:47 | 只看该作者
当然你也可以参加一些开源项目,一方面可以提高自己,另一方面也是为中国软件事业做贡献嘛!开发者在互联网上用CVS合作开发,用QQ,MSN,E-mail讨论联系,天南海北的程序员分散在各地却同时开发同一个软件,是不是很有意思呢?
变相怪杰 该用户已被删除
14#
发表于 2015-3-24 00:56:13 | 只看该作者
[url]http://www.jdon.com/[/url]去下载,或到同济技术论坛的服务器[url]ftp://nro.shtdu.edu.cn[/url]去下,安装上有什么问题,可以到论坛上去提问。
再见西城 该用户已被删除
15#
发表于 2015-3-27 08:56:28 | 只看该作者
是一种使网页(Web Page)产生生动活泼画面的语言
若天明 该用户已被删除
16#
发表于 2015-4-8 07:49:49 | 只看该作者
那么我书也看了,程序也做了,别人问我的问题我都能解决了,是不是就成为高手了呢?当然没那么简单,这只是万里长征走完了第一步。不信?那你出去接一个项目,你知道怎么下手吗,你知道怎么设计吗,你知道怎么组织人员进行开发吗?你现在脑子里除了一些散乱的代码之外,可能再没有别的东西了吧!
海妖 该用户已被删除
17#
发表于 2015-4-9 13:09:31 | 只看该作者
至于JDBC,就不用我多说了,你如果用java编过存取数据库的程序,就应该很熟悉。还有,如果你要用Java编发送电子邮件的程序,你就得看看Javamail 了。
深爱那片海 该用户已被删除
18#
发表于 2015-4-16 13:44:19 | 只看该作者
[url]http://www.jdon.com/[/url]去下载,或到同济技术论坛的服务器[url]ftp://nro.shtdu.edu.cn[/url]去下,安装上有什么问题,可以到论坛上去提问。
蒙在股里 该用户已被删除
19#
发表于 2015-4-18 07:40:10 | 只看该作者
是一种突破用户端机器环境和CPU
第二个灵魂 该用户已被删除
20#
发表于 2015-5-9 04:59:12 | 只看该作者
Jive的资料在很多网站上都有,大家可以找来研究一下。相信你读完代码后,会有脱胎换骨的感觉。遗憾的是Jive从2.5以后就不再无条件的开放源代码,同时有licence限制。不过幸好还有中国一流的Java程序员关注它,外国人不开源了,中国人就不能开源吗?这里向大家推荐一个汉化的Jive版本—J道。Jive(J道版)是由中国Java界大名 鼎鼎的banq在Jive 2.1版本基础上改编而成, 全中文,增加了一些实用功能,如贴图,用户头像和用户资料查询等,而且有一个开发团队在不断升级。你可以访问banq的网站
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-11-15 01:36

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表