线程1
可以实现"同时"执行多个任务的工作,在计算机里没有绝对意义的同时做。线程的工作是并发的
创建线程有两种方式:
第一种:继承Thread并重写run方法来定义任务
由于需要继承Thread,当前类就不能扩展其他类了;由于线程内部重写了run方法,不利于线程重用
第二种:使用Runnable接口。定义其实现类。定义线程要执行的任务
用匿名内部类来完成两种线程的创建方式
启动 t1.start()
1.获取运行该方法的线程 Thread t=Thread.currentThread(); t.getId() t.getName() t.getPriority
线程优先级 1-10个等级。 10最大,1最小,5默认 优先级高的线程理论上获取CPU时间片的次数多。
2.Thread min=new Thread() min.setPriority(Thread.MIN_PRIORITY);
3.守护线程,又叫做后台线程 thread.setDaemon(true);
当进程中的所有前台线程都结束时,无论后台线程是否还在运行都要强制结束,并最终结束进程
Thread的静态方法sleep,可以使得当前线程进入阻塞状态 当超时后,Thread.sleep(1000);指定毫秒
thread.join();允许当前线程在另外一个线程上等待,进入阻塞状态,直到另一个线程运行完毕,当前线程才会
解除阻塞,继续执行。通常用于协调两个线程同步工作使用
这里调用thread1.join()会使2线程进入堵塞状态,直到1线程执行完毕才会解除。
当一个方法中的局部内部类中想引用当前方法的其他局部变量,那么该变量必须被声明为final的。JDK8.0后不再需要。
只为成功找方法,不为失败找借口!
浙公网安备 33010602011771号