黑马程序员技术交流社区

标题: 帮助自学者活动之线程【2】送技术分【100】---------------------- [打印本页]

作者: 朱神必    时间: 2014-3-11 21:09
标题: 帮助自学者活动之线程【2】送技术分【100】----------------------
本帖最后由 朱神必 于 2014-3-11 21:28 编辑

助自活动之线程:

【活动背景】随着黑马的影响力越来越大,知道黑马的同学越来越多,所以在家自学毕老师的视频的同学也越来越多,这时,自学的弊端也显示出来了,缺少交流,缺少毅力,缺少资源等等。。。我在这里针对在同学们看视频的时候,内容理解不了,又或者内容记不住这个问题向大家征集解决办法,希望已经通过入学的同学或正在努力并有自己办法的同学踊跃分享自己的办法。

本人非常喜欢的歌,与大家分享。
[tianchai_youku]XNDM4MDEzMzg0[/tianchai_youku]


【活动要求】每个人可以写关于java线程的自己的理解,总结,或者线程的巩固练习题目等等,让自学的同学们能够掌握线程这个内容。打包zip格式附件回复。


【活动目的】让傻瓜也能熟练掌握线程(并不是说学不好的是傻瓜噢,反正就是通俗易懂这个意思,别理解错了哦,亲)


【活动奖励】看通俗易懂程度奖励1~5分技术分,回复即可有10%几率获得技术分,100技术分,送完为止。怎么样,丰厚吧,那是,本版主向来都是如此大方的啦,呵呵              

【奖励规则】自己的总结:奖励1~2技术分;题目算法及解答:奖励1~3技术分;有自己独到的见解及通俗易懂,傻瓜式:奖励3~5技术分(以后会持续发表此类活动,希望更多的人关注哦)

数组活动【1】




8D1I5Z72ER~}J1Q}FK9UZPD.jpg (130.43 KB, 下载次数: 109)

与君共勉

与君共勉

作者: l939    时间: 2014-3-11 21:11
好活动必须顶~~~!!!!!!!!!!!!!!!
作者: 何伟超    时间: 2014-3-11 21:11
来个沙发
作者: 大大老伴要跪IT    时间: 2014-3-11 21:11
这个活动挺好,沙发。
作者: .......    时间: 2014-3-11 21:12
马上有分..
作者: 何伟超    时间: 2014-3-11 21:13
原来回复也是有分的呀
作者: .......    时间: 2014-3-11 21:13
这几率,...额
作者: ζ丶凡σ    时间: 2014-3-11 21:15
好活动..............................
作者: 何伟超    时间: 2014-3-11 21:15
我就不信了!!!
作者: 何伟超    时间: 2014-3-11 21:16
交流交流!!!!!
作者: ixiangfeng    时间: 2014-3-11 21:16
这个中奖概率太低了吧
作者: 洋葱骑士    时间: 2014-3-11 21:16
卧槽,顶贴都能送技术分,版主你敢不敢在无节操一点
作者: ζ丶凡σ    时间: 2014-3-11 21:17
好活动..............................
作者: ζ丶凡σ    时间: 2014-3-11 21:18
好活动..............................
作者: ixiangfeng    时间: 2014-3-11 21:20
活动不错 但中奖机率太坑爹了啊 要搞高点啊
作者: 眷恋之地    时间: 2014-3-11 21:21
好活动,支持!!!
作者: 洋葱骑士    时间: 2014-3-11 21:21

进程与线程的区别:
1.进程有独立的进程空间,进程中的数据存放空间(堆空间和栈空间)是独立的。
2.线程的堆空间是共享的,栈空间是独立的,线程消耗的资源也比进程小,相互之间可以影响的。

创建线程:
1、继承Thread类
子类覆写父类中的run方法,将线程运行的代码存放在run中。
建立子类对象的同时线程也被创建。
通过调用start方法开启线程。

2、实现Runnable接口
子类覆盖接口中的run方法。
通过Thread类创建线程,并将实现了Runnable接口的子类对象作为参数传递给Thread类的构造函数。
Thread类对象调用start方法开启线程。
可使用匿名内部类来写
PS:
Thread类中run()和start()方法的区别如下:
run()方法:在本线程内调用该Runnable对象的run()方法,可以重复多次调用;
start()方法:启动一个线程,调用该Runnable对象的run()方法,不能多次启动一个
线程;



作者: l939    时间: 2014-3-11 21:22
沙发竟然是我的????~~~~~
作者: 洋葱骑士    时间: 2014-3-11 21:22
本帖最后由 洋葱骑士 于 2014-3-11 21:25 编辑

两种进程创建方式比较
1. A extends Thread:
简单
不能再继承其他类了(Java单继承)
同份资源不共享
2. A implements Runnable ( 推荐)
多个线程共享一个目标资源,适合多线程处理同一份资源。
该类还可以继承其他类,也可以实现其他接口。

总结:
实现方式,因为避免了单继承的局限性,所以创建线程建议使用第二种方式。
为什么要覆盖run方法呢?
Thread类用于描述线程。该类就定义了一个功能,用于存储线程要运行的代码。该存储功能就是run方法.
也就是说Thread类中的run方法,用于存储线程要运行的代码。


作者: ixiangfeng    时间: 2014-3-11 21:23
不会真要回复10个才中一次吧
作者: l939    时间: 2014-3-11 21:24
德玛西亚,继续回帖,概率啊,求加分~~~~~~
作者: l939    时间: 2014-3-11 21:25
如此好的活动。。。我擦嘞,坑爹么,来分啊有木有- -
作者: 洋葱骑士    时间: 2014-3-11 21:25
线程的生命周期
Thread类内部有个public的枚举Thread.State,里边将线程的状态分为:
     NEW-------新建状态,至今尚未启动的线程处于这种状态。
     RUNNABLE-------运行状态,正在 Java 虚拟机中执行的线程处于这种状态。
     BLOCKED-------阻塞状态,受阻塞并等待某个监视器锁的线程处于这种状态。
     WAITING-------冻结状态,无限期地等待另一个线程来执行某一特定操作的线程处于这种状态。
     TIMED_WAITING-------等待状态,等待另一个线程来执行取决于指定等待时间的操作的线程处于这种状态。
     TERMINATED-------已退出的线程处于这种状态

作者: 朱神必    时间: 2014-3-11 21:25
洋葱骑士 发表于 2014-3-11 21:21
进程与线程的区别:
1.进程有独立的进程空间,进程中的数据存放空间(堆空间和栈空间)是独立的。
2.线程 ...

打包zip,不按格式不给分
作者: ixiangfeng    时间: 2014-3-11 21:26
好吧 真的一分都不中啊
作者: 洋葱骑士    时间: 2014-3-11 21:26
朱神必 发表于 2014-3-11 21:25
打包zip,不按格式不给分

不是回复就有分吗
作者: sgs_gzy    时间: 2014-3-11 21:27
单单是线程这一块?
作者: 洋葱骑士    时间: 2014-3-11 21:28
join方法:调用join方法的线程对象强制运行,该线程强制运行期间,其他线程无法运行,必须等到该线程结束后其他线程才可以运行。
有人也把这种方式成为联合线程

join方法的重载方法:
join(long millis):
join(long millis,int nanos):
通常很少使用第三个方法:
程序无须精确到一纳秒;
计算机硬件和操作系统也无法精确到一纳秒;

作者: .......    时间: 2014-3-11 21:28
顶一个,,,,,,,
作者: 洋葱骑士    时间: 2014-3-11 21:29
当多条语句在操作同一个线程共享数据时,一个线程对多条语句只执行了一部分,还没有执行完,另一个线程参与进来执行。导致共享数据的错误。

解决办法:
对多条操作共享数据的语句,只能让一个线程都执行完。在执行过程中,其他线程不可以参与执行。

作者: 洋葱骑士    时间: 2014-3-11 21:30
放弃了,不玩了,不给分没动力
作者: l939    时间: 2014-3-11 21:30
说好的回帖就有分呢????
作者: centian2005    时间: 2014-3-11 21:30
{:3_56:}都放到word文档里了。上传了,分享给大家。代码也在里面,都可以运行

多线程.zip

288.51 KB, 下载次数: 445


作者: 眷恋之地    时间: 2014-3-11 21:30

好活动,支持!!!
作者: 洋葱骑士    时间: 2014-3-11 21:31
洋葱骑士 发表于 2014-3-11 21:26
不是回复就有分吗

哦,那好吧,我放弃了不玩了。
作者: l939    时间: 2014-3-11 21:32
擦勒,再来一分吧,亲~~~~
作者: ixiangfeng    时间: 2014-3-11 21:33

好活动必须顶~~~!!!!!!!!!!!!!!! 顶一下吧 加点分
作者: 眷恋之地    时间: 2014-3-11 21:33

好活动,支持!!!
作者: l939    时间: 2014-3-11 21:34
诶,所谓的10次机会,10%概率,意思是只有一次水贴得分的机会么:funk:
作者: .......    时间: 2014-3-11 21:35
打个比方:一个object就像一个大房子,大门永远打开。房子里有很多房间(也就是方法)。这些房间有上锁的(synchronized方法),和不上锁之分(普通方法)。房门口放着一把钥匙(key),这把钥匙可以打开所有上锁的房间。另外我把所有想调用该对象方法的线程比喻成想进入这房子某个房间的人。所有的东西就这么多了,下面我们看看这些东西之间如何作用的。

  在此我们先来明确一下我们的前提条件。该对象至少有一个synchronized方法,否则这个key还有啥意义。当然也就不会有我们的这个主题了。

  一个人想进入某间上了锁的房间,他来到房子门口,看见钥匙在那儿(说明暂时还没有其他人要使用上锁的房间)。于是他走上去拿到了钥匙,并且按照自己的计划使用那些房间。注意一点,他每次使用完一次上锁的房间后会马上把钥匙还回去。即使他要连续使用两间上锁的房间,中间他也要把钥匙还回去,再取回来。

  因此,普通情况下钥匙的使用原则是:“随用随借,用完即还。”

  这时其他人可以不受限制的使用那些不上锁的房间,一个人用一间可以,两个人用一间也可以,没限制。但是如果当某个人想要进入上锁的房间,他就要跑到大门口去看看了。有钥匙当然拿了就走,没有的话,就只能等了。

  要是很多人在等这把钥匙,等钥匙还回来以后,谁会优先得到钥匙?Not guaranteed。象前面例子里那个想连续使用两个上锁房间的家伙,他中间还钥匙的时候如果还有其他人在等钥匙,那么没有任何保证这家伙能再次拿到。 (JAVA规范在很多地方都明确说明不保证,象Thread.sleep()休息后多久会返回运行,相同优先权的线程那个首先被执行,当要访问对象的锁被释放后处于等待池的多个线程哪个会优先得到,等等。我想最终的决定权是在JVM,之所以不保证,就是因为JVM在做出上述决定的时候,绝不是简简单单根据一个条件来做出判断,而是根据很多条。而由于判断条件太多,如果说出来可能会影响JAVA的推广,也可能是因为知识产权保护的原因吧。SUN给了个不保证就混过去了。无可厚非。但我相信这些不确定,并非完全不确定。因为计算机这东西本身就是按指令运行的。即使看起来很随机的现象,其实都是有规律可寻。学过计算机的都知道,计算机里随机数的学名是伪随机数,是人运用一定的方法写出来的,看上去随机罢了。另外,或许是因为要想弄的确定太费事,也没多大意义,所以不确定就不确定了吧。)

作者: ixiangfeng    时间: 2014-3-11 21:35
再来一次 走人咯
作者: 洋葱骑士    时间: 2014-3-11 21:39
我自己没有写总结,附件是百度文库的一篇文章
总结的很到位,里面的例子和注释也很详细。
需要的可以看一下

多线程-转至百度文库.rar

49.63 KB, 下载次数: 108


作者: 眷恋之地    时间: 2014-3-11 21:40
好活动,支持!!!
作者: Monkey·D·Chas    时间: 2014-3-11 21:41
回帖也有分?
作者: lwy0319    时间: 2014-3-11 21:47
目前初学多线程,先来支持下,过几天学完好来发感想
作者: dapeng111    时间: 2014-3-11 21:48
见到了,回一个~
作者: 眷恋之地    时间: 2014-3-11 21:48
好活动,支持!!!
作者: 眷恋之地    时间: 2014-3-11 21:51
课堂笔记

多线程.zip

81.48 KB, 阅读权限: 10, 下载次数: 3


作者: 眷恋之地    时间: 2014-3-11 21:52
好活动,支持!!!
作者: hai0ai    时间: 2014-3-11 21:57
这是我学习线程的时候,参考的资料,非常的详细,前面是介绍,后面有巩固练习。对我的帮助很大!希望也能借组版主的帖子帮到更多的在学习线程的同学

java中线程笔记.zip

40.94 KB, 下载次数: 111


作者: 眷恋之地    时间: 2014-3-11 21:57
好活动,支持!!!
作者: 老金vic    时间: 2014-3-11 21:58
好活动啊!
作者: 眷恋之地    时间: 2014-3-11 21:59
好活动,支持!!!
作者: 眷恋之地    时间: 2014-3-11 22:02
好活动,支持!!!
作者: 眷恋之地    时间: 2014-3-11 22:03
好活动,支持!!!
作者: 眷恋之地    时间: 2014-3-11 22:05
好活动,支持!!!
作者: dlwcg    时间: 2014-3-11 22:06
好活动必须顶!
作者: sgs_gzy    时间: 2014-3-11 22:10
个人数组的一些小练习!望互相学习!

个人数组练习.zip

885 Bytes, 下载次数: 74


作者: 眷恋之地    时间: 2014-3-11 22:10
好活动,支持!!!
作者: zzkang0206    时间: 2014-3-11 22:11
路过。。。。。。。。。
作者: 眷恋之地    时间: 2014-3-11 22:13
好活动,支持!!!
作者: 眷恋之地    时间: 2014-3-11 22:15
好活动,支持!!!
作者: 无此姓名    时间: 2014-3-11 22:16
活动给力 顶一个
作者: 诺忔。初禾、    时间: 2014-3-11 22:18
。。。。。。。。。。。。。。。。。。
作者: zzkang0206    时间: 2014-3-11 22:19
路过。。。。。。。。。
作者: 诺忔。初禾、    时间: 2014-3-11 22:20
。。。。。。。。。。。。。。。。。。。。。。
作者: 诺忔。初禾、    时间: 2014-3-11 22:26
;;;;;;;;;;;;;;;;;;;;;;;;;;;
作者: ixiangfeng    时间: 2014-3-11 22:26
发现线程都忘得差不多了 得回去复习一下了
作者: 眷恋之地    时间: 2014-3-11 22:27
好活动,支持!!!
作者: zzmxhm    时间: 2014-3-11 22:31
技术分快到碗里来~
作者: 刘望望    时间: 2014-3-11 22:31
虽不是自己整理的,不过是不错的资料,对自己有一定帮助

Java的多线程.zip

13.63 KB, 下载次数: 65


作者: 刘望望    时间: 2014-3-11 22:33
好活动,帮顶
作者: 刘望望    时间: 2014-3-11 22:34
好活动,帮顶
作者: 刘望望    时间: 2014-3-11 22:35
我要技术分
作者: .......    时间: 2014-3-11 22:37
给个分吧 ....
作者: ixiangfeng    时间: 2014-3-11 22:37
再来一顶 明天复习一下多线程
作者: 刘望望    时间: 2014-3-11 22:38
好活动,支持!!!
作者: 刘望望    时间: 2014-3-11 22:40
今天运气不好。。
作者: 诺忔。初禾、    时间: 2014-3-11 22:43
.............................
作者: 诺忔。初禾、    时间: 2014-3-11 22:45
...............................
作者: 诺忔。初禾、    时间: 2014-3-11 22:47
\\\\\\\\\\\\\\\\\\\\\\\
作者: wowo6288    时间: 2014-3-11 22:47
关于多线程自己的一个简单理解,您们看看行不

多线程自己的理解.zip

649 Bytes, 下载次数: 43


作者: 诺忔。初禾、    时间: 2014-3-11 22:50
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
作者: 刘望望    时间: 2014-3-11 22:50
得技术分好难
作者: 郝大龙0104    时间: 2014-3-11 22:51
好活动。。 欢迎有更好的学习方法
作者: ixiangfeng    时间: 2014-3-11 22:52
刷两贴准备睡觉
作者: 诺忔。初禾、    时间: 2014-3-11 22:53
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
作者: 诺忔。初禾、    时间: 2014-3-11 22:54
.......................................................
作者: 诺忔。初禾、    时间: 2014-3-11 22:55
sssssssssssssssssssssssss
作者: 诺忔。初禾、    时间: 2014-3-11 22:57
ssssssssssssssssssssssssssssss
作者: 诺忔。初禾、    时间: 2014-3-11 22:58
000000000000000000000000000
作者: 诺忔。初禾、    时间: 2014-3-11 23:00
...............................................
作者: 诺忔。初禾、    时间: 2014-3-11 23:03
nnnnnnnnnnnnnnnnnnn
作者: sgs_gzy    时间: 2014-3-11 23:05
个人线程小练习,望互相学习!

个人线程练习.zip

1.38 KB, 下载次数: 40


作者: dlwcg    时间: 2014-3-11 23:08
好活动必须顶!
作者: 刘望望    时间: 2014-3-11 23:14
再来一次!!!
作者: WO.瘾姓埋銘    时间: 2014-3-11 23:19
好活动必须顶 !!!
作者: dlwcg    时间: 2014-3-11 23:47
好活动必须顶!
作者: ixiangfeng    时间: 2014-3-11 23:48
睡前一顶 明天继续加油
作者: dlwcg    时间: 2014-3-11 23:49

好活动必须顶!




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2