Java线程简单实现方法

   一、重要概念:

          1、应用程序由一个或多个相互协作的进程组成。进程包含一个或多个线程。

          2、进程可以申请和拥有系统资源,线程只能归属于一个进程并且它只能访问该进程所拥有的资源。在引入线 程的OS中,进程是作为分配资源的基本单位,线程作为独立运行和独立调度的基本单位。因为线程比进程小(基本不拥有系统资源),对它的调度开销少,更有效的提高多个程序的并发执行程度

          3、进程之间相互独立。进程有独立的地址空间,一个进程崩溃后,在保护模式下不会对其它进程产生影响;

               线程只是一个进程中的不同执行路径。同一进程内的各个线程间实现共享数据空间。线程有自己的堆栈和局部变量,但线程之间没有单独的地址空间,一个线程死掉就等于整个进程死掉;所以多进程的程序要比多线程的程序健壮。


二、Java中创建线程的方法

         1、继承Thread类

         2、实现Runnable接口

              接口需要类来实现。看下图,即可知道二者的关系


   简单的创建线程    

  1、继承Thread类
创建线程(分三步)
            
// 1、继承Thread类
public class MyThread extends Thread{

    private String name;
    public MyThread(String name) {
        this.name = name;
    }
// 2、实现run方法
    public void run(){
        System.out.println("线程"+ name + "运行了");
    }
   
    public static void main(String[] args) {
//3、启动线程
        new MyThread("newThread").start();
    }

}

   2、实现Runnable接口

//1、实现Runnable接口
public class MyRunnabel implements Runnable{
	String name;
	public MyRunnabel(String name) {
		this.name = name;
	}
//2、重写run方法
	@Override
	public void run() {
		System.out.println("线程"+ name + "运行了");
		
	}
	public static void main(String[] args) {
//3、创建Runnable对象
		Runnable r = new MyRunnabel("newRunnable");
//4、创建Thread对象
		Thread t = new Thread(r);
//5、启动线程
		t.start();
	}
}<span style="font-size:24px;">
</span>
    深入理解
1、线程能最大程度的利用cpu,一旦一个线程暂停执行,cpu又转向去执行其它任务,看上去多个程序同时运行,提供cpu利用率

public class ThreadDemo extends Thread{

	String name;
	public ThreadDemo(String name) {
		this.name = name;
	}
	public void run(){
		for(int i = 0; i < 5; i++){
			System.out.print(name + i + "  ");
			try {
				Thread.sleep(10);//暂停一会儿,让CPU执行其它线程
			} catch (InterruptedException e) {
				e.printStackTrace();
			}
		}
	}
	public static void main(String[] args) {
	//创建类对象并运行线程
		new ThreadDemo("A").start();
		new ThreadDemo("B").start();
		new ThreadDemo("C").start();
	}

}



























评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值