A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© Bermuda  中级黑马   /  2014-8-6 19:41  /  3085 人查看  /  38 人回复  /   4 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 Bermuda  于 2014-8-7 08:07 编辑

创建:
方式一:继承Thread
  步骤:
  继承Thread覆写run( )方法
  通过Thread子类创建线程对象
  调用start( );方法开启线程执行run( )

方式二:实现Runnable接口
  步骤:
  定义类实现Runnable接口
  覆盖接口中的run( )方法
  通过Thread类创建线程对象
  将实现Runnable接口的子类对象作为实际参数传递给Thread类的构造函数
  //让线程明确run( )方法所属对象是为了关联线程任务和线程对象
  调用Thread对象的start( )方法。开启线程运行Runnable接口中的run( )方法
  Ticket t = new Ticket();
  Thread t1 = new Thread(t); //创建线程。
  t实参传递,明确要运行的run( ) ,Ticket实现Runnable接口,覆写run()

状态:

创建:
     new Thread对象或其子类对象
运行:
     start( ),具备执行资格与执行权
冻结:
     放弃执行资格与执行权
       sleep(time);
       必须指定时间,时间到从冻结状态变为运行状态
   释放执行权不释放锁
   wait( );
  指不指定时间都可以,不指定的话必须由notify或notifyAll唤醒
  释放执行权,释放锁 (必须在同步中)
消亡:
stop();
阻塞:
线程具备cpu的执行资格,没有cpu的执行权
join方法:直到调用该方法的线程执行完再往下继续执行,异步变同步
yield方法:让出CPU执行权给同优先级线程与sleep类似
安全问题:

产生原因:多个线程操作共享数据,共享数据有多条语句,在某时刻被一个线程执行时没有执行完就被其他线程参与进来,并继续操作了共享数据,导致错误产生
多个线程操作共享数据
有多条语句对共享数据进行运算
解决:(加锁)共享数据的多条语句在某一时刻让一个线程执行完,其他线程不能执行
单例
只有一个对象:自己创建别人不能创建但我提供方法让你用
例子:军队指挥官,电脑资源管理器
---饿汉
---懒汉
  -------安全(双重判断加锁 single.class
  -------不安全

多线程_2345看图王.jpg (1.93 MB, 下载次数: 154)

多线程_2345看图王.jpg

线程状态_2345看图王.jpg (933.43 KB, 下载次数: 132)

线程状态_2345看图王.jpg

死锁.jpg (625.83 KB, 下载次数: 131)

死锁.jpg

评分

参与人数 1技术分 +1 收起 理由
格子、 + 1 排下版看着会舒服点,总结的不错!下次记得.

查看全部评分

38 个回复

倒序浏览
看看涨姿势
回复 使用道具 举报
复习了一遍
回复 使用道具 举报
楼主总结的不错,巩固了下。
回复 使用道具 举报
:)学习了~总结的不错
回复 使用道具 举报
学习下。。。。。。。。。
回复 使用道具 举报
好漂亮的图,是你自己画的吗?
回复 使用道具 举报
hmid 来自手机 中级黑马 2014-8-7 00:11:59
8#
学习学习
回复 使用道具 举报
受教了。赞个!
回复 使用道具 举报
大爱。图做的真好
回复 使用道具 举报
wnmmp 发表于 2014-8-6 23:57
好漂亮的图,是你自己画的吗?


恩恩,自己画的:)
回复 使用道具 举报
M单色调 来自手机 中级黑马 2014-8-7 08:16:00
12#
总结的不错了!顶起
回复 使用道具 举报
过来学习下
回复 使用道具 举报
学习一下
回复 使用道具 举报
这图画的不错
回复 使用道具 举报
F@C 中级黑马 2014-8-7 14:46:10
16#
进来学习
回复 使用道具 举报
总结的很好,温故而知新。
回复 使用道具 举报
楼主好人啊,,,
回复 使用道具 举报
总结的不错啊。
回复 使用道具 举报
感谢,感谢,最近正在复习这里
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 加入黑马