java 线程

 

线程:线程并行;方法调用串行

 

1、main方法为主线程。

 

2、thread 类的start方法为唯一启动一个新线程的方法,若定义了一个runnable接口的

 

实现类R,但是没有new thread(R r).start(),而只是R.run()则并没有启动新的

 

线程而只是方法调用,属于一个线程内的。

 

3、如果可以使用runnable接口则不用thread类,因为类只能继承自一个类,但是可以实

 

现多个接口,所以runnable更为灵活、实用

 

4、start()后表示线程进入就绪状态,开始排队。

 

5、就绪、运行、阻塞三个状态(活的)

 

6、优先级setPriority、是否活着isAlive、睡眠sleep(是静态方法,就是暂停执行,注

 

意一定要捕获异常interruption,thread.interrupt()方法会进去此异常)、yield让出

 

cpu,进入就绪队列等待调度、join合并线程,调用某线程的该方法,将当前线程和该线

 

程合并,即等待该线程结束后,再恢复当前线程的运行,相当于方法调用(串行)。

 

7、wait、notify、notifyAll

 

8、停止一个线程的方法:

尽量不用stop;不推荐使用interrupt;最好使用while循环判断。

 

9、run方法结束,就表示线程结束了。所以一般来讲,run方法都有循环。

 

10、同步

 

a.要同步某段代码,只需要锁定(public synchronized void fun(){synchronized(this){。。。任意代码}})

b.执行某个方法时,当前对象被锁定(public synchronized void fun(){})

c.注意想要锁定某对象如a=10;则很有必要锁定所有修改a的方法

 

11、wait后,锁就不属于自己了,等notify之后再找回该锁。

 

12、notify叫醒属于当前对象的其它wait的线程

 

13、生产者、消费者(wait notify)

 

14、线程池

       ExecutorService exec = Executors.newCacheThreadBool();

       exex.execute(new RunableImpl());

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值