线程定义 01
多线程:在操作系统每次分时给java程序一个时间片的cpu时间内,在若干个独立的可控制的线程之间切换
线程的创建:
两种创建线程的方法:1.实现Runable接口
2.继承Thread类
-
Thread类的构造方法:1.用Thread类或者子类创建线程对象,创建线程是通过调用Thread类的构造方法
来实现的。
定了线程要操作的数据,线程开始执行时,也是从它的run方法开始执行的。
3.每个线程都有自己的名称。
1.实现Runnable接口创建线程:
步骤:1.定义一个类实现Runnable接口,在该类中实现run() 方法。
2.将该方法的的实例作为参数传给Thread类的一个构造方法,从而创建一个线程。
格式:Thread 对象=new Thread(new 类名);
注意:新建的线程不会自动运行,必须调用线程的start()方法。
package src;
public class Runnable Thread
{
public static void main(String args[])
{
Thread t1 = new Thread(new Hello("t1"));
Thread t2 = new Thread(new Hello("t2"));
t1.start();
t2.start();
}
}
class Hello implements Runnable
{
int i ;
String name;
public Hello(String threadname)
{
name=threadname;
}
public void run()
{
while(true)
{
System.out.println(name+":Hello"+i++);
if (i==5)
break ;
}
}
}
2.Thread 类创建步骤:1.定义一个类继承Tread类,并写其中的run方法。
2.创建该类子类的对象创建线程。
格式:类 对象=new 类();
3.start()方法开始运行;
package src;
public class extendsThread
{
public static void main(String[] args)
{
Hello t1=new Hello("t1");
Hello t2=new Hello("t2");
t1.start();
t2.start();
}
}
class Hello extends Thread
{
int i=0;
String name;
public Hello(String threadname)
{
name=threadname;
}
public void run()
{
while (true)
{
System.out.println(name+":Hello"+i++);
if (i==5) break;
}
}
}
线程两种创建方法比较:
-
Runnable接口的优势:1.符合oo设计的思想。
2.便于用extends继承其它类
-
继承Thread类优点:1.程序代码更简单。
2.可以在run()方法中直接调用线程的其它方法。
线程的并发
package Runnable1;
//多个线程操作同一个对象
//多个线程操作同一个资源的情况下,线程不安全,数据混乱
public class TestThread1 implements Runnable
{
//票数
private int ticketNums=10;
浙公网安备 33010602011771号