多线程基础知识点死锁 通信 线程池 线程组 定时器

本文深入探讨了Java多线程的基础知识点,包括Lock锁的使用、死锁问题、线程间通信如生产者消费者问题、定时器应用、线程池管理、线程组的概念及其实现,为开发者提供全面的多线程编程指导。

java多线程基础知识点

lock

	概述 :  可以更加清晰的加锁和释放锁,JDK5之后就提供了新的锁对象LOCK
	方法:
				 void  lock(  ) 获取锁
				 void unlock (  ) 释放锁

  实现类:
  				 ReentrantLock  类

死锁问题

	概述 :
			是指两个或者两个以上的线程在执行过程中,因为争夺资源产生的一种相互等待现象
	同步弊端:
				效率低、如果出现了同步嵌套,就容易产生死锁问题

线程之间的通信问题

	不同种类之间针对同一资源的操作

·生产者消费者问题
思路:
生产者:
1、先看是否有数据,有就等待,没有就生产
2、生产完成之后,就通知消费者来消费数据
消费者:
1、先看是否有数据,有就消费,没有就等待
2、通知生产者生产数据

加锁的注意事项
不同种类的线程都要加锁
不同种类的线程加的必须都是统一把锁

定时器

	可以用于调度多个定时任务以后台线程的方式执行
	可以在指定的时间做某件事,可以重复的做某件事
	可以通过Timer和TimerTask类来完成定义调度的功能

Timer定时

public Timer ( )
public void schedule ( TimerTask ,long delay )
public   void schedule   ( TimerTask, long  delay,long period )

TimerTask

public abstract void run( )
public boolean cancel ( )

在开发中Quartz是一种完全有java编写的开源调度框架

线程池

可以很好地提高性能,尤其是在当程序中要创建大量生存周期很短的线城市,更应该考虑使用线程池

线程池里的每一个线程代码结束后并不会死亡,而是再次回到线程池中称为空闲状态下,等待下一个对象再来使用

JDK5之前必须手动实现自己的线程池,从JDk5开始,java内置支持线程池

Executors 工厂类

创建新的缓冲线程池newCachedThreadPool ( );
创建多条线程: newFixedThreadPool( int hreads )
创建单一的线程池 : newSingleThreadExecutor ( );

线程组

   java中使用的ThreadGroup来表示线程组,他可以对一批线程进行管理
   java允许程序直接对线程组进行控制

public  final ThreadGroup  getThreadGroup ( )  默认情况下所有的线程都属于主线程组
Thread ( ThreadGroup  group, Runnable target ,String name )    给线程设置分组 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值