// main.javapackagecom.company;publicclassMain{publicstaticvoidmain(String[] args){System.out.println(Thread.currentThread().getName());// 打印线程的名字for(int i =0; i <10; i++){// 创建新的线程Thread thread =newThread(newDownFileTask());// 开始线程
thread.start();// 类似于DownFileTask里的sleep, 在进程没有运行完之前阻塞线程try{
thread.join();}catch(InterruptedException e){
e.printStackTrace();}System.out.println("File is ready to be scanned");}}}
// DownFileTask.javapackagecom.company;publicclassDownFileTaskimplementsRunnable{@Overridepublicvoidrun(){System.out.println("Downloading file task "+Thread.currentThread().getName());// 模拟下载文件,并取消文件下载for(int i =0; i <Integer.MAX_VALUE; i++){if(Thread.currentThread().isInterrupted())return;System.out.println("Downloading byte "+ i);}System.out.println("Download complete "+Thread.currentThread().getName());}}
// main.javapackagecom.company;publicclassMain{publicstaticvoidmain(String[] args){Thread thread =newThread(newDownFileTask());
thread.start();try{
thread.sleep(5000);}catch(InterruptedException e){
e.printStackTrace();}// 发送暂停线程的请求,但是不会主动停止请求
thread.interrupt();System.out.println("File is ready to be scanned");}}