关于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类更好的描述出数据共享这一概念
* 数据共享指的是多个线程访问同一资源的操作
*/