创建线程:方法1:创建任务,使用Thread类来开启这个任务/执行这个进程:
1,创建任务
public class MyThread implements Runnable{ }
public class MyThread implements Runnable{
/*将任务放在这里*/
Thread.yield();//这里是对线程调度器(java中线程机制的一部分,可以讲cpu从一个线程中移到另一个线程
//它表明:我已经执行完了声明周期中的重要部分,此时正是切换到其他任务执行一段时间的大好时机。不过这完全是选择性的)
Thread T=new Thread(new MyThread());
T.start();
}
方法2:使用Executor(Java.util.concurrent)包中的执行器Executor
public class CachedThreadPool{
public static void main(String []args){
ExecutorService exec=Executors.newCachedThreadPool();
exec.execute(new MyThread());
exec.shutdown();//可以防止新任务被提交给这个Executor,当前线程(这里是main()的线程)将继续运行在shutdown被调用之前所提交的所有任务
}
}
上面的newCachedThreadPool会创建与所需线程数相同数量的线程,并且在回收旧线程是停止创建新线程。
它是比较合理的Executor,只有当这种方式发生问题时才需要切换到其他的Executor。
newFixedThreadPool(5),一次创建5个线程,这种方式可以节省时间,因为你不用为每个任务都固定的付出创建线程的开销。
newSingleThreadExecutor();这像是一个线程的newFIxedThreadPool(1)如果向它提交了多个任务这些任务将会排队执行。