线程

线程

JVM允许一个应用有多个线程同时运行
线程有优先级,高优先级线程比低优先级线程优先被执行。线程可以标记成daemon。在线程里创建一个新的线程,这个新线程的初始优先级等于创建线程的优先级。当创建线程是daemon线程时,新线程就是daemon线程。
JVM启动时,通常有一个非daemon线程,有些地方成为main。JVM不停的执行线程,遇到下面情况之一停止:
1 Runtime的exit方法被调用了,并且安全管理允许exit操作发生。
2 所有的非daemon线程已经死了,即run执行结束或者在run抛出了异常。

有2种方式创建线程,一个是声明一个Thread类的子类,并且重写Thread类的run方法。然后子类的实例就可以被分配和启动。另一个是声明一个类实现Runnable接口,这类实现run方法。这个类的实例可以被分配出来,在创建线程的时候作为一个参数被传递,被启动。

线程都有一个作为身份的名称,多个线程可能有同样的名字,如果线程创建的时候没有指定名称,会自动生成一个新的名称。

在线程里的构造函数和方法里传空的参数会导致空指针异常。

线程池

用Executors的工厂方法配置线程池。
线程池解决2个问题:在执行大量异步任务时提供更好的性能,减少了任务前调用的开销;提供一种限制和管理线程的方式。
为方便使用,在Executors中封装了几个方便的工厂方法:newCachedThreadPool(无限制线程池,自动申请线程),newFixedThreadPool(固定线程池),newSingleThreadExecutor

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值