多线程实现(Thread类)
2016-07-24 15:04
357 查看
一、定义
在同一个时间段上,会有很多进程去抢占资源,但是在某一个时间点上,只有一个进程运行
线程和进程是一样的,都必须轮流抢占资源,所以多线程的执行,应该是多个线程彼此交替执行
线程是在进程的基础上进一步划分结果,即一个进程上可以同时创建多个线程
线程是比进程更快的单元,而且多占的资源也小。那么多线程的应用也就是性能最高的应用
线程的存在离不开进程,进程如果消失后,线程一定会消失,反之如果线程消失了,进程不一定消失
二、如果在java中实现多线程有两种途径:
1、继承Thread类;
2、实现Runnable接口(callable接口);
(一)继承Thread类
Thread类是一个支持多线程的功能类,只要有一个子类它就可以实现多线程的支持
所有程序的起点是main方法,而线程的起点是run()方法,再多线程的每个主体类之中都必须重写 Thread类中的run方法
这个方法没有返回值,表示线程一旦开始就要一直执行,不能返回内容,如果直接直接调用了run()方法,不能直接启动多线程,多线程启动方法是Thread类中的start()方法,调用此方法执行的方法体是run()方法定义的
例子
此时每一个线程对象交替执行 ,一个线程只能启动一次,即调用一次start()方法
在同一个时间段上,会有很多进程去抢占资源,但是在某一个时间点上,只有一个进程运行
线程和进程是一样的,都必须轮流抢占资源,所以多线程的执行,应该是多个线程彼此交替执行
线程是在进程的基础上进一步划分结果,即一个进程上可以同时创建多个线程
线程是比进程更快的单元,而且多占的资源也小。那么多线程的应用也就是性能最高的应用
线程的存在离不开进程,进程如果消失后,线程一定会消失,反之如果线程消失了,进程不一定消失
二、如果在java中实现多线程有两种途径:
1、继承Thread类;
2、实现Runnable接口(callable接口);
(一)继承Thread类
Thread类是一个支持多线程的功能类,只要有一个子类它就可以实现多线程的支持
//线程操作主类 public class MyThread extends Thread {}
所有程序的起点是main方法,而线程的起点是run()方法,再多线程的每个主体类之中都必须重写 Thread类中的run方法
public void run() {}
这个方法没有返回值,表示线程一旦开始就要一直执行,不能返回内容,如果直接直接调用了run()方法,不能直接启动多线程,多线程启动方法是Thread类中的start()方法,调用此方法执行的方法体是run()方法定义的
public void start() {}
例子
public class MyThread extends Thread { private String name; public MyThread(String name) { this.name = name; } @Override public void run() {//重写run方法,作为线程的主体方法 super.run(); for(int x = 0 ; x < 200 ; x++) { System.out.println(this.name + "-->" + x); } } }
public class TestDemo { 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(); } }
此时每一个线程对象交替执行 ,一个线程只能启动一次,即调用一次start()方法
相关文章推荐
- java对世界各个时区(TimeZone)的通用转换处理方法(转载)
- java-注解annotation
- java-模拟tomcat服务器
- java-用HttpURLConnection发送Http请求.
- java-WEB中的监听器Lisener
- Android IPC进程间通讯机制
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- 介绍一款信息管理系统的开源框架---jeecg
- 聚类算法之kmeans算法java版本
- java实现 PageRank算法
- PropertyChangeListener简单理解
- c++11 + SDL2 + ffmpeg +OpenAL + java = Android播放器
- 插入排序
- 冒泡排序
- 堆排序
- 快速排序
- 二叉查找树