zoukankan      html  css  js  c++  java
  • 线程的两种实现方式

    package thread;
    
    public class Run_Thread implements Runnable{
    
    	@Override
    	public void run() {
    		// TODO Auto-generated method stub
    	for(int i=0;i<100;i++)
    		System.out.println("run"+i);	
    	}
    	
    }
    class ex_thread extends Thread{
    
    	@Override
    	public void run() {
    		// TODO Auto-generated method stub
    	
    		for(int i=0;i<100;i++)
    			System.out.println("thread"+i);	
    		}
    	}
    	
    
    package thread;
    
    public class TestRun {
    
    	public static void main(String[] args) {
    		// TODO Auto-generated method stub
    		
    		ex_thread e=new ex_thread();
    	
    		Run_Thread r=new Run_Thread();//创建真实角色
    		Thread th1=new Thread(r);//创建代理角色+真实角色引用
              //接口加静态态代理 e.start(); th1.start(); } }

     继承Thread +重写run()

    启动:创建的子类对象+对象.start()

    使用runnable创建线程

    1.类实现runnable接口,重写run()   ----》真实角色类

    2.启动多线程   使用静态代理

    1).创建真实角色

    2)创建代理角色 Thread+真实角色引用

    3)调用.start()启动线程

    推荐使用runnable接口方式

    1.避免单继承局限性

    2.便于共享资源

  • 相关阅读:
    FR #3题解
    L3-005. 垃圾箱分布
    L2-004. 这是二叉搜索树吗?
    L2-002. 链表去重
    L1-009. N个数求和
    L3-003. 社交集群
    L3-004. 肿瘤诊断
    L2-001. 紧急救援
    L3-002. 堆栈
    L2-007. 家庭房产
  • 原文地址:https://www.cnblogs.com/tianhao/p/4191807.html
Copyright © 2011-2022 走看看