7、Java多线程基本知识

1、java多线程就是在一个jvm进程中,开启不同线程去处理独立的任务。

2、进程可以看作是一个独立的程序,比如听歌软件、游戏软件等,线程就是软件里不同的操作功能。

3、多线程的实现主要有三种:

实现Thread类

实现Runable接口

实现Callable接口

4、开启线程要用.start()方法

5、线程的状态可分为:新建--可运行--运行--阻塞、等待、睡眠--死亡

6、线程的同步,是在多线程环境下防止同时对与一个数据对象操作,对数据造成破坏。

7、死锁:当两个或多个线程进入相互等待对方释放锁时,就有可能进入死锁状态

8、线程的休眠可以用Thread.sleep(毫秒);方法实现,记得要处理异常。

9、线程的优先级就是越高,抢夺CPU时间片的机会越大,从1到10,越高越优先,默认为5.

可以用t1.setPriority(10);方法设置

10、线程的让步yield()方法,会重新到可运行状态。

11、线程的合并,可以用jion()方法加入当前线程,当前线程挂起等待其执行完。

12、守护线程:setDaemon(true)可将线程设置为守护线程。

13、线程的同步,可以使用synchronized关键字,只能用在非抽象的方法上,不能用在成员变量上

14、volatile关键字也可以保证同步,但是性能较差。

15、线程池:java的Executors类中有大量的关于线程池的方法。

Executors.newFixedThreadPool(2);可重用的固定大小的线程池,2个线程。

Executors.newCachedThreadPool();可变尺寸的线程池。

Executors.newScheduledThreadPool(2).execute(t1线程);再.schedule(t2线程,12,秒);延迟线程池,意思就是在给定的延迟任务后执行。

Executors.newSingleThreadExecutor();单任务线程池,以无界队列来运行。

16、障碍器:只有所有子任务都执行完了,再来执行主任务。

CyclicBarrier cy = new CycleBarrier(3,new MainTask());

当3个子线程任务都完成后再执行Main任务,要在子线程中通知主线程它做完了,用cy.await()方法。

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值