Java-线程二

8线程的并发和并行。

9线程的基本操作。

       1)sleep()方法是将线程休眠,让cpu去执行其他线程,当线程休眠结束cpu分配资源继续执行该线程。

       2)interrupt()方式将在运行的线程中断。当线程在阻塞状态调用该方法,则线程立刻退出阻塞状态,抛出intereuptedExceprion异常,线程退出。当线程是在运行状态调用该方法,则线程会将中断标记设置为true,则线程在合适的时候退出。

       3)join()是将线程合并。

       4)yield()是将现在执行的线程放弃当前的执行,让出CPU的执行权限,使得CPU执行其他线程。

       5)deamon属性设置为true,则为守护线程,若为false设置为用户线程

10 Exceutors创建4种类型的线程池

单线程化的线程池

ExecutorService pool=Executors.newSingleThreadExecutor();

        固定线程的线程池

        ExecutorService pool=Executors.newFixedThreadPool(3);

        可缓存的线程池

        ExecutorService pool=Executors.newCachedThreadPool();

        可调度的线程池

        ScheduledExecutorService pool=Executors.newScheduledThreadPool(2);

11 ReentrantLock可重入锁。ReentrantLock可用于代替synchronized。ReetrantLocak更加安全

12线程标准创建方式:Executors工场创建线程,但是实际上是通过ThreadPoolExceutor去构建线程池的。

       对于ThreadPoolExecutor构造器来说有6个参数。

CorePoolSize 核心线程数。

maximumPoolSize zuida 线程数的上限。

keepAliveTime 线程最大空闲时间。

BlockingQueue<Runnable> 任务排队队列

ThreadFactory  新线程产生的方法。

RejectedExecutionHandler 拒接策略

13像线程池提交任务的俩种方式。

       第一种方式

1 execute(Runnable runnable)

       第二种方式

2 <T> Future<T> submit(Callable<T> task)

3 <T> Future<T> submit(Runnable task,T result)

4 Future<?> submit(Runnable task)

线程池任务提交方式的区别:

这俩个方法接受的参数不一样。Execute()只可以接受Runnable的参数,submit可以接受Callable,Runnable。

对submit接受参数之后会有返回值,对于execute()没有返回值。

Submit方便Exeption处理。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容