黑马程序员--线程

来源:互联网 发布:多益网络绑定战盟 编辑:程序博客网 时间:2024/04/30 03:28
------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------
线程的学习
线程;就是进程中独立的控制单元。
线程在控制着进程的执行。执行程序就是在执行线程。多线程就是对一个程序同时处理。
一个进程中至少有一个线程。

java VM 启动时会有一个进程Java.exe.
该进程中至少有一个线程负责Java程序的执行,而且这个线程运行的代码存在于main方法中,该线程称之为主线程。

创建线程的方式:一、继承Thread类。
步骤;1,定义类继承Thread。 
2,复写Thread类中的run方法。
目的;将自定义代码存储在run方法中,让线程运行。
3,调用线程的start方法。(该方法有两个作用;启动线程,调用run方法)

Thread类就是对线程的描述,当别的类继承了此类之后,拥有了此类的方法也就成了一个线程。但是自定义线程得运行自己的定义的代码,所以就放在run方法中。
示例:主线程和一个线程的交替运行。
class Demo extends Thread {public void run()//开启的线程执行{for (int x=0;x<60 ;x++ ){System.out.println("Demo run  -"+x);}}}class  ThreadDemo{public static void main(String[] args) //主线程执行main方法中的代码{Demo d = new Demo();//创建一个线程但是,没有开启d.start();//开启线程,并执行线程的run方法//d.run();没有开启线程,主线程直接运行run方法。for (int x=0;x<60 ; x++){System.out.println("Hello World!"+x);}}}
创建线程的第二种方式:实现接口Runnable接口


步骤;
1,定义类实现Runnable接口。
2,覆盖Runnable接口中的run方法。
run方法中存放要运行的代码。
3,通过Thread类建立线程对象。
4,将Runnable接口的子类对象作为实际参数传递给Thread类的构造函数。(Thread类中有一个构造函数能接受Runnable接口类型的对象)
5,调用Thread类的start方法开启线程并调用Runnable接口子类的run方法。




实现方式和继承方式的区别;
实现的好处;避免了单继承的局限性。(Java中类只能单继承)
(多线程处理同一个对象,共享同一个资源)
在定义线程时,建议使用实现方式。
class Ticket implements Runnable {private int tick = 100;public void run(){while (true){if(tick>0)System.out.println(Thread.currentThread().getName()+".....sale:"+tick--);}}}class  TicketDemo{public static void main(String[] args) {Ticket t = new Ticket();Thread t1 = new Thread(t);//创建一个线程Thread t2 = new Thread(t);Thread t3 = new Thread(t);Thread t4 = new Thread(t);//多个线程处理同一个对象t1.start();t2.start();t3.start();t4.start();}}


0 0
原创粉丝点击