java应用技术

多线程的创建:
创建线程方式1:继承Thread类:子类覆盖父类中的run方法,将线程运行
的代码存放在run中。
建立子类对象的同时线程也被创建。


通过调用start方法开启线程。多次调用start()会报异常。
线程的四种状态:被创建→等待运行→结束→死亡。
创建线程的方式2:
实现Runnable接口:子类覆盖接口中的run方法。


通过Thread类创建线程,并将实现了
Runnable接口的子类对象作为参数传递给
Thread类的构造函数。


Thread类对象调用start方法开启线程。
Thread和Runnable的关系:Thread是Runnable 的子类。实际上Thread和Runable的关系和我们前边讲的代理设计模式很像,  这里的Thread就是代理类。我们自己所实现的类才是real
Thread和Runnable 的区别
:Runnable可以共享数据。
线程操作常用的方法:取得和设置线程名字getName() 
。判断线程是否启动isAlive()
(主线程有可能比其他的线程先执行完)。isAlive()
:判断线程是否处于活动状态

sleep(long millis): 线程休眠。
join() :强制执行线程

线程的安全问题:
导致线程安全问题的原因:多个线程访问出现延迟。


线程随机性 。
注意:线程安全问题在理想状态下,不容易出
现,但一旦出现对软件的影响是非常大
的。同步(synchronized):同步可以解决安全问题的根本原因就在那个对象上。


该对象如同锁的功能。
同步的特点同步需要两个或者两个以上的线程。
多个线程使用的是同一个锁。未满足这两个条件,不能称其为同步。
同步的弊端:
当线程相当多时,因为每个线程都会去判断
同步上的锁,这是很耗费资源的,无形
中会降低程序的运行效率。







  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值