java多线程学习笔记
来源:互联网 发布:java office在线预览 编辑:程序博客网 时间:2024/04/29 02:06
概念:进程,一个程序的执行就是一个进程,如qq软件的执行,搜狗浏览器的执行,这就是一个进程。进程之间的通信有信号量、套接字等。
线程,就是一个程序下的多种并发执行操作,一个浏览器可能同时刷新多个网页,这就是多线程。在程序执行过程中,多个进程之间内存是共享的。
java多线程实现:
在java中可有两种方式实现多线程,一种是继承Thread类,一种是实现Runnable接口;Thread类是在java.lang包中定义的。
一个类只要继承了Thread类同时覆写了本类中的run()方法就可以实现多线程操作了,但是一个类只能继承一个父类,这是此方法的局限。(java中一个类只能有一个父类)
class MyThread1 extends Thread{ public static int index; public void run(){ for (int i=0;i<100;i++) System.out.println(getName()+":"+index++); }}public class TestThread { public static void main(String[] args){ MyThread1 t1 =new MyThread1(); MyThread1 t2 = new MyThread1(); MyThread1 t3 = new MyThread1(); t1.start(); t2.start(); t3.start(); new MyThread1().start(); new MyThread1().start(); }}继承Thread类来实现多线程,只要对run()进行重写,在需要执行的地方调用该类的start()方法即可。
但是java中一个类只有一个父类,也就是说一个类要是继承了别的类就无法去继承Thread类来实现多线程了,此时我们用Runnable接口实现多线程就能解决这个问题,而且在java中一个类是允许实现多个接口的。
但是有个一问题,就是Runnable接口实现的类中没有start()方法,只有Thread实现的类中有这个方法,我们发现Thread类有一个构造方法:public Thread(Runnable targer)此构造方法接受Runnable的子类实例,也就是说可以通过Thread类来启动Runnable实现的多线程是可行的。我们来看下面的代码:
class Wife { public static int index;}class Son extends Wife implements Runnable{ public String name; public Son(String name){ this.name = name; } @Override public void run() { //To change body of implemented methods use File | Settings | File Templates. for (int i=0;i<100;i++) System.out.println(this.name+": "+index++); }}public class TestThread { public static void main(String[] args){ Son s1 =new Son("A"); Son s2 = new Son("B"); new Thread(s1).start(); new Thread(s2).start(); }}代码中,Son类继承了Wife类就没有办法再继承Thread类了,但是我们用Runnable接口实现了多线程的操作!
0 0
- Java多线程学习笔记
- Java多线程学习笔记
- Java学习笔记---多线程
- java多线程学习笔记
- Java多线程学习笔记
- Java多线程学习笔记
- JAVA多线程学习笔记
- Java 多线程学习笔记
- java多线程学习笔记
- Java多线程学习笔记
- [学习笔记]Java多线程
- java多线程学习笔记
- Java多线程学习笔记
- Java学习笔记-多线程
- Java多线程学习笔记
- Java多线程学习笔记
- Java多线程学习笔记
- Java 多线程学习笔记
- Android4.0 隐藏虚拟按键 实现全屏
- property参数的一些常识
- 在xp中tc环境下实现的 销售管理系统(可切换繁体和简体,可设密码,可通过修改代码修改字体颜色)
- java 动态数组
- 在xp中tc环境下实现的 销售管理系统(可切换繁体和简体,可设密码,可通过修改代码修改字体颜色)
- java多线程学习笔记
- 统计英文文章中空格数,单词数,字符数,并删除指定字符 (c语言)
- windows 下易被忽略的快捷键
- vc++6.0 下实现的 立体四子棋 程序 (原型来源于北京科技馆)
- 提高SQL查询性能的7个方法(转)
- Axis2中OMElement对象解析的问题
- 文件相关操作工具类
- scp 命令使用
- aspx网页控件