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可用于代替synchronizedReetrantLocak更加安全

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

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

  1. CorePoolSize 核心线程数。
  2. maximumPoolSize zuida 线程数的上限。
  3. keepAliveTime 线程最大空闲时间。
  4. BlockingQueue<Runnable> 任务排队队列
  5. ThreadFactory  新线程产生的方法。
  6. 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)

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

  1. 这俩个方法接受的参数不一样。Execute()只可以接受Runnable的参数,submit可以接受Callable,Runnable。
  2. 对submit接受参数之后会有返回值,对于execute()没有返回值。
  3. Submit方便Exeption处理。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值