java多线程属于基础部分吗 创建一个固定大小的线程池
ExecutorService fixedThreadPool = Executors.newFixedThreadPool(2); 2指的是同一时刻最多只有两个线程执行
线程一旦被放入了线程池中就会开始执行(相当于调用了start()方法,具备了执行资格)
Future<?> submit(Runnable task)
提交一个可运行的任务执行,并返回一个表示该任务的未来。
MyRunnable myRunnable = new MyRunnable();
Thread t1 = new Thread(myRunnable);
线程池中的线程之间会互相抢CPU执行权
fixedThreadPool.submit(new MyRunnable()); 这里底层相当于有一个Thread类包装成线程对象了并且也开始执行
fixedThreadPool.submit(new MyRunnable()); 这里底层相当于有一个Thread类包装成线程对象了并且也开始执行
fixedThreadPool.submit(new MyRunnable()); 这里底层相当于有一个Thread类包装成线程对象了并且也开始执行
线程池需要手动关闭,一般情况下需要不断地放入线程执行,一般不需要关。
fixedThreadPool.shutdown();
<T> Future<T> submit(Callable<T> task) 创建线程第三种方式
提交值返回任务以执行,并返回代表任务待处理结果的Future。
fixedThreadPool.submit(new MyCallable());
fixedThreadPool.submit(new MyCallable());
fixedThreadPool.submit(new MyCallable());
十一、Callable接口(多线程的实现3)
好处
可以有返回值
可以抛出异常
弊端
代码比较复杂,所以一般不用


十二、匿名内部类方式使用多线程
new Thread(){代码...}.start();
NEW Thread(new Runnable(){代码...}.start();
使用匿名内部类创建线程对象并启动
new 类/接口/抽象类(){
重写方法
}



版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/1617.html