多线程

1.实现线程的两种方式:继承java.lang.Thread/实现java.lang.Runnable接口

2.继承Thread类:覆盖run()方法,将实现该线程功能的代码放入run()方法中(通常run()方法中使用无限循环的形式,可指定一个跳出循环的条件),调用Thread类中的start()方法执行线程


3.实现Runnable接口:已继承其他类而还需实现多线程,则可通过匿名类实现接口(线程执行一次)



4.线程的生命周期:出生状态→(调用start()方法)→就绪状态→(得到系统资源)→运行状态→(调用Thread类中wait()方法)     →等待状态→(调用notify()方法)→就绪状态(notifyAll()方法将所有等待状态下的线程唤醒)
                           运行状态  →(调用Thread类中sleep()方法)→休眠状态
                           运行状态 →(发出输入输出请求)→阻塞状态(不能回到运行状态)
                           运行状态 →(run()方法执行完毕)→死亡状态
5.操作线程的方法
   线程的休眠:sleep()以毫秒为单位
   线程的加入:join() 加入的线程执行完毕后执行原来的线程
   线程的中断:stop()方法停止线程
               run()方法中使用无限循环的形式,然后使用一个布尔型标记控制循环的停止
               若使用了sleep()/wait()方法进入就绪状态,可使用Thread类中的interrupt()方法使线程离开run()方法,同时结束线程,程序抛出InterruptException异常,用户可在处理异常时完成线程的中断业务处理,如终止while循环


   线程的礼让:yield()方法  只是一种暗示,不可保证当前线程会将资源礼让;使具有同样优先级的线程有进入可执行状态的机会

6.线程的优先级 setPriority(String threadName,int priority,Thread t)


7.线程的同步
   线程安全 多个线程同时存取单一对象的数据(抢票系统)

   线程同步机制  同步块 将操作代码设置在同步块中 使用synchronized(Object){}Object为任意一个对象,每个对象存在一个标志位,并具有两个值,值为0表明此同步块有其它线程正在运行,该线程则处于就绪状态;值为1则可运行该线程


                 同步方法 将共享资源的操作放置在同步方法中  语法:synchronized void f(){}





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值