java学习------------------------Thread多线程

关于java的学习记录:

/**
 * 实现多线程
 * 1.继承Thread类
 * 2.实现Runnable接口(Callable接口)
 * JNI技术 java Native Interface,特点是使用java调用本机操作
 * 系统提供的函数,但是有一个缺点,不能够离开特定的操作系统
 * 线程是需要由操作系统来进行资源分配
 * java具有单继承,所以针对于类的继承应该是回避的,多线程也一样
 */
public class Demo1 {

    public static void main(String[] args) {
        MyThread mt1=new MyThread("线程A");
        MyThread mt2=new MyThread("线程B");
        MyThread mt3=new MyThread("线程C");
        //每一个线程对象交替进行
//        mt1.start();        
//        mt2.start();        
//        mt3.start();        
        new Thread(mt1).start();
        new Thread(mt2).start();
        new Thread(mt3).start();
    }

}
//多线程的起点run()方法
class MyThread implements Runnable{
    private String name;//定义属性
    public MyThread(String name) {
        this.name=name;
    }
    //覆写run()方法作为线程的主体操作方法
    public void run() {
        System.out.println("啦啦啦,run run run");
        for(int i=0;i<5;i++) {
            System.out.println(this.name+"-->"+i);
        }
    }
}
//class MyThread extends Thread{
//    private String name;//定义属性
//    public MyThread(String name) {
//        this.name=name;
//    }
//    //覆写run()方法作为线程的主体操作方法
//    public void run() {
//        System.out.println("啦啦啦,run run run");
//        for(int i=0;i<5;i++) {
//            System.out.println(this.name+"-->"+i);
//        }
//    }
//}

//函数式接口,在接口里面任何的方法都是public定义的权限,不存在默认的权限
//@FunctionalInterface
//public interface Runnable{
//    public void run();
//}
/**
 * 多线程两种实现方式的区别?(面试题)
 * 1.首先一定要明确的是,使用Runnable接口与Thread类相比,解决了
 * 单继承的局限,所以不管后面的区别与联系是什么,至少这一点上就已经
 * 下了死定义------如果要使用一定是使用Runnable接口
 * Thread类实现了Runnable接口
 * 2.使用Runnable接口可以比Thread类更好的描述出数据共享这一概念
 * 数据共享指的是多个线程访问同一资源的操作
 */

猜你喜欢

转载自blog.csdn.net/amuist_ting/article/details/80667159