1.线程 Thread类 ,可以继承他,复写run方法,然后new一个对象,调用start方法启动。
2.runnable接口,他单独把run方法定义出来了,可以自己实现一个runnable接口,然后new一个runnable对象给到thread的构造方法中,调用thread的start方法
线程中断 - interrupt 再run方法中,你随时可以调用Thread.currentThread().isInterrupted() 方法判断当前线程是否被中断了,然后判断是否继续执行还是终止执行,如果是调用了业务方法,你可以抛出InterruptException异常 让上层方法来判断继续还是终止。
线程停止:stop 他是抛出error,不能进行捕获,是jvm层处理的,他会再线程执行下一个指令的时候终止掉线程操作
中断、停止都会调用 finally 代码块、 closeable资源的close方法(你得定义再try的小括号里面)
中断较为温和,stop较为极端
线程thread参数:name、runnable、threadgroup、tasksize,前面两个可以单个给,前面三个可以两两给或者都给,也可以四个都给。
name名字,不给的话他有个线程数量累加到名字后缀里面,前缀是固定的一个字符串。
runnable:线程要执行的具体任务,thread的run方法默认是调用runnable的run方法
threadgroup:线程组,给线程分配到那个组里面,不给默认是给到调用者当前线程所在组(优先获取System.getSecurityManager(),再获取当前线程组)目的可能是为了后