欢迎来到天天文库
浏览记录
ID:14855247
大小:201.20 KB
页数:8页
时间:2018-07-30
《java多线程,集合框架(附简单代码)》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、■多进程与多线程多进程:在操作系统中能(同时)运行多个任务(程序);多线程:在同一个应用程序中有多个顺序流(同时)执行。■创建线程的方法:方式一:定义一个线程类,它继承类Thread并重写其中的方法run(),方法run( )称为线程体;由于Java只支持单继承,用这种方法定义的类不能再继承其他类。1、FirstThread.java文件:publicclassFirstThreadextendsThread{publicvoidrun(){for(inti=0;i<100;i++){System.o
2、ut.println("FirstThread->"+i);}}}2、Test.java文件:publicclassTest{publicstaticvoidmain(String[]args){//生成线程类的对象FirstThreadft=newFirstThread();//启动线程ft.start();//千万不能写成这样:ft.run();for(inti=0;i<100;i++){System.out.print("main-->"+i);}}}方式二:提供一个实现接口Runnable的类
3、作为线程的目标对象,在初始化一个Thread类或者Thread子类的线程对象时,把目标对象传递给这个线程实例,由该目标对象提供线程体。1、RunnableImpl文件:publicclassRunnableImplimplementsRunnable{publicvoidrun(){for(inti=0;i<20;i++){System.out.println("Runnable-->"+i);}}}2、testOne文件:publicclasstestOne{publicstaticvoidmain
4、(String[]args){//TODOAuto-generatedmethodstub//生成一个Runnable接口实现类的对象RunnableImplri=newRunnableImpl();//生成一个Thread对象,并将Runnable接口实现类的对象//做为参数传递给该Thread对象Threadt=newThread(ri);//通知Thread对象,执行start()方法t.start();}}<线程的简单控制方法:中断线程:--Thread.sleep()--Thread.yie
5、ld()//线程自动让出CPU,再进入线程抢占状态设置线程的优先级:--getPriority()--setPriority()publicclassRunnableImplimplementsRunnable{publicvoidrun(){for(inti=0;i<20;i++){System.out.println("Runnable-->"+i);if(10==i){try{Thread.sleep(2000);}catch(Exceptione){System.out.print(e);}}
6、}}}设置线程优先级:publicclasstestOne{publicstaticvoidmain(String[]args){//TODOAuto-generatedmethodstub//生成一个Runnable接口实现类的对象RunnableImplri=newRunnableImpl();//生成一个Thread对象,并将Runnable接口实现类的对象//做为参数传递给该Thread对象Threadt=newThread(ri);//线程的优先级最大为10,最小为1t.setPriorit
7、y(Thread.MAX_PRIORITY);//Thread.MIN_PRIORITY[1,10]//通知Thread对象,执行start()方法t.start();System.out.print(t.getPriority());}}<线程同步:1、MyThread.java文件:classMyThreadimplementsRunnable{inti=20;publicvoidrun(){while(true){synchronized(this){//同步锁System.out.printl
8、n(Thread.currentThread().getName()+i);i--;Thread.yield();if(i<0){break;}}}}}2、Test.java文件:publicclasstestOne{publicstaticvoidmain(String[]args){MyThreadmyThread=newMyThread();//生成两个Thread对象,但是两个对象公用同一个线程体Threadt1=newThread(myThre
此文档下载收益归作者所有