黑马程序员————线程组、线程池、定时器等主要方法

来源:互联网 发布:玄空风水软件 编辑:程序博客网 时间:2024/06/03 18:10
1.JDK5之后的Lock锁:
Lock lock = .....;//子类对象
lock.lock();//获取锁
try{
//同步的代码
}finally{
lock.unlock();//解锁
}
2.线程组:
ThreadGroup:
构造:ThreadGroup(String name);
将线程添加到某个线程组:
MyThread t = new MyThread(group,"线程名称");


作用:可以将多个线程添加到某个组,统一管理;
     可以对组内的所有线程做统一操作;
3.线程池:
Executors类中的一些静态方法:
public static ExecutorService newCachedThreadPool()
public static ExecutorService newFixedThreadPool(int nThreads):例子中使用的;
public static ExecutorService newSingleThreadExecutor():
ExecutorService类:
Future submit():执行一个线程,并接受返回值;
意义:
可以实例化一组线程对象,并可以反复使用,不需要再次构造;


4.多线程实现方式3:
1.实现Callable接口;
2.重写call()方法;
3.测试:
使用线程池的方式启动线程;
5.定时器:
1.TimerTask(抽象类):定义任务;
1).继承自TimerTask;
2).重写run()方法;
2.使用Timer启动:
构造方法:Timer();
成员方法:
public void schedule(TimerTask task,long delay):在delay毫秒后开始执行TimerTask
  public void schedule(TimerTask task,long delay,long period):安排指定的任务从指定的延迟后开始进行重复的固定延迟执行。

7.设计模式:
1.简单工厂模式:
1.提供"具体产品"类;
2.提供"工厂"类:
1).方式一:内部针对每种产品,提供一个单独的getXxx()方法;
2).方式二:内部只提供一个方法,需要所有产品有一个父类,此方法声明:
public 产品父类  get产品(String type){
if(type.equals("")){
return 产品1;
}
if(type.equals("")){
return 产品2;
}
}
2.工厂方法模式:
1).提供"产品"接口
2).提供"工厂"接口;
3).每新增一个产品时,定义一个产品类,实现"产品"接口,
  再定义一个"产品工厂"类,实现"工厂"接口;
8.单例模式:
1.程序运行期间,全局只有一个某类的对象,此类就可以设计为"单例模式":
2.要点:
1).构造方法私有化;
2).定义本类类型的私有、静态 变量;
3).提供公有静态方法获取本类的对象;
3.饿汉式:
内部成员定义时,就直接实例化;
 懒汉式:
内部成员定义时,先置为null,在公有方法中,先判断是否是null,然后再赋值,最后返回引用;
0 0
原创粉丝点击