java 两种进程创建方式比较
A extends Thread:
简单
不能再继承其他类了(Java单继承)
同份资源不共享
A implements Runnable:(推荐)
多个线程共享一个目标资源,适合多线程处理同一份资源。
该类还可以继承其他类,也可以实现其他接口。
我的总结:
实现方式,因为避免了单继承的局限性,所以创建线程建议使用第二种方式。
Eg:
package july7;
//线程卖票的例子
class SellTicket extends Thread{
private String name;
private int num = 50;
public SellTicket(String name) {
super();
this.name = name;
}
public void run(){
for (int i = 1; i <= num; i++) {
System.out.println(name+"卖出了第"+i+"张票!");
}
}
}
class MySell implements Runnable{
private int num = 50;
@Override
public void run() {
for (int i = 1; i <= num; i++) {
System.out.println(Thread.currentThread().getName()+"卖出了第"+i+"张票!");
}
}
}
public class Demo2 {
public static void main(String[] args) throws Exception {
new SellTicket("A").start();
new SellTicket("B").start();
new SellTicket("C").start();
new Thread(new MySell(),"D").start();
new Thread(new MySell(),"E").start();
new Thread(new MySell(),"F").start();
for (int i = 10; i > 0; i--) {
System.out.println(i);
Thread.sleep(1000);
}
}
}
我的总结:
为什么要覆盖run方法呢?
Thread类用于描述线程。该类就定义了一个功能,用于存储线程要运行的代码。该存储功能就是run方法.
也就是说Thread类中的run方法,用于存储线程要运行的代码。
相关文章
- java实现取球博弈
- Java实现选择问题
- Java实现旅行商问题
- Java实现 蓝桥杯VIP 算法提高 三角形面积
- Java实现 蓝桥杯VIP 算法训练 阿尔法乘积
- java核心知识点学习----并发和并行的区别,进程和线程的区别,如何创建线程和线程的四种状态,什么是线程计时器
- 【JAVA】MacBook安装Java环境及eclipse
- 【JAVA】毕向东Java基础视频教程-笔记
- [Linux] Install java and add JAVA_HOME, PATH
- 【Java】java使用反射访问对象方法和成员变量
- Linux脚本:xjps查看各个节点java进程
- Java超类-java.lang.object
- 使用JDK自带的jmap和jhat监控处于运行状态的Java进程
- Java java.util.concurrent.Future的一个例子
- Java — java.lang.NullPointerException - 如何处理空指针异常
- JVM源码分析之一个Java进程究竟能创建多少线程
- JAVA反射机制
- 下载各个版本java (Java Development Kit)
- 【刷题记录12】Java工程师丨面试必会进程线程问答
- 【java】池技术--连接池 线程池 内存池 进程池等汇总分析
- 【java】Java并发编程系列-基础知识(非常详细哦)
- 【java】Java线程池实现原理及业务中的实践
- java入门 常见问题0015:避免硬编码
- java实体比较集合排序