java中开辟新线程的两种方法以及区别
来源:互联网 发布:淘宝二手市场网 编辑:程序博客网 时间:2024/06/14 20:36
在java开发中经常会遇到线程问题,笔者之前也是技术小白,对线程这一直没有多大理解,这段时间找工作时遇到公司面试问这块的问题较多,故又搜索资料恶补了下,发现线程并不是那么难,只能说笔者技术太菜了。
1、什么叫线程?
线程是操作系统能够进行运算调度的最小单位,是进程的实际运作单位。进程就是通熟意义讲的任务。例如:你执行一个旅行的任务,选择什么样的交通方式就是一个线程。 程序员可以利用线程进行多处理编程,比如你在旅行途中同时可以做其他的事情,互不干涉同步进行。而且多线程可以节省时间。比如:你一个线程完成一个任务需要100毫秒时间,那么你10个进程只需10毫秒。
不同的进程使用不同的内存空间,不同的线程共享同一内存空间。注:不同的线程都有自己不同的栈内存空间存储
2、创建线程的方法以及有何区别?
java语言通过Thread实现多线程编程,创建线程的方法类似创建普通对象,线程就是创建Thread类对象或者子类实例对象。创建线程以下有两种方法:
1)扩展一个新的线程类,重载run()方法
2)实现runnable接口,重载run()方法
在java中仅支持单继承,也就是说当定义一个新的类后只能扩展一个外部类,也就是说定义的这个类是扩展的Thread类的话,就不能再扩展,就不能再实现其他复杂的功能了,而实现runnable接口能解决这个问题,实现runnable接口创建的线程可以处理同一资源,可以实现资源共享。
3、示例:
实现runnable接口
public class ThreadRunnable{
public static void main(String args[]){
MyThread aa=new MyThread();
Thread t1=new Thread(aa,"window1");
Thread t2=new Thread(aa,"window2");
Thread t3=new Thread(aa,"window3");
t1.start();
t2.start();
t3.start();
}
static class MyThread implements Runnable{
private int ticket=100;
public void run(){
while(ticket>0){
System.out.println(ticket+"被"+Thread.currentThread().getName()+"买了");
ticket--;
}
}
}
}
- java中开辟新线程的两种方法以及区别
- java中创建线程的两种方法的区别
- java中创建线程的两种方法及其区别
- 三种开辟工作线程的方法
- java实现线程的两种方法有什么区别?
- java中创建新进程的两种方法
- 获取java线程中信息的两种方法
- 在Java中实现线程的两种方法
- JAVA中创建线程对象的两种方法
- JAVA中实现线程的两种方法
- 获取java线程中信息的两种方法
- Java中创建线程的两种方法
- Java中线程实现的两种方法
- java中创建线程的两种方法及比较
- Android之Handler在新线程中读取网络的两种方法
- Android之Handler在新线程中读取网络的两种方法
- java中实现多线程的两种方法的区别
- 两种新建线程的简单方法以及懒汉模式中lock的重要性
- SpinControl控件与动态画图
- UVA 111 最长递增子序列
- TCP、UDP、IP 协议分析
- 线性判别分析简明入门教程
- POJ1239 dp (严格递增子序列)
- java中开辟新线程的两种方法以及区别
- POJ 1141 区间dp
- 英语考试 FZU
- JavaWeb性能优化
- 深入浅出vi(vim)编辑器篇章zero——初始vi(vim)
- HDU Advanced Fruits
- js异步加载的三种解决方案
- 数据标准化 Normalization
- Linux进程间通信之管道