黑马程序员-java多线程.doc:..多线程概述:进程:是一个正在执行中的程序。每一个进程都有一个执行顺序。该顺序是一个执行路径,或者叫一个控制单元。线程:是进程中的一个独立的控制单元。线程控制着进程的执行。一个进程中至少有一个线程。例如,。该进程中至少有一个线程负责jax/a程序的执行,而且这个线程运行的代码存在于main方法中。该线程称之为主线程。JVM启动了不止一个线程,还包括负责垃圾回收机制的线程等。多线程的意义:使多部分代码同时执行;下载时加快速度等。线程的几种状态::.韦警创建线程方法:方法一:继承Thread类方法二:实现Runnable接口例1:□ava]viewplaincopy1./**2.*简单的卖票程序,利用多线程实现多个窗口同时卖票3.*/4.//方法一:继承Thread类classMyThreadextendsThread{privatestaticintcount=20;publicvoidrun(){while(true){if(count>0)•println(()<getName()+n…lf+count--);elsebreak;}}}/*//方法二:实现Runnable接口classTicketimplementsRunnable{privateintcount=20;publicvoidrun(){while(true){if(count>0)•println(().getName()+"…lf+count--);elsebreak;}}}*/classThreadTest{publicstaticvoidmain(String[]args){Threadtl=newMyThread();Threadt2=newMyThread();(); //();/*Tickettieket二newTicket();Threadt3=newThread(ticket);Threadt4二newThread(ticket);47.}48.}输出结果:[java]-0...-0...-1...-0e..-1...-0...-1...-0...-1...-0...-1...-0...-1.•・-0...-1...-0.・・-1...-0.•・-1...-0...1此例屮,发现运行结果每一次都不同。因为在某一时刻,只能有一个程序在运行(多核CPU除外)。CPU在做着快速的切换,以达到看上去是同时运行的效果。多个线程都在竞争CPU的执行权,CPU执行到谁,谁就运行。因此打印结果并不固定。两种方法的区别:实现Runnable接口方法:线程代码存放在接口子类的run方法中。继承Thread类方法:线程代码存放在Thread子类的run方法中。实现Runnable接口方法,避免了单继承的局限性。在创建线程时,建议使用实现的方式。获取线程对象及名称:线程都有自己默认的名称:Thread■编号,编号从0开始。staticThreadcurrentThread():获収当前线程对象getName():获収线程名称setName()或构造函数:设置线程名称例2:[java]viewplaincopy1./**2.*简单的卖票程序3・♦/・{;(Stringname)8・ {(name);10.}()12.{(x=0;x<10;x++)14・ {15• •println((Thread•currentThread()==this)+"…”+this•getName()+nrun...M+x);16.}.}18.}.{ staticvoid main(String[] args)23.{2
黑马程序员-java多线程 来自淘豆网m.daumloan.com转载请标明出处.