java线程基础
来源:互联网 发布:淘宝号改后台有危害吗 编辑:程序博客网 时间:2024/05/29 12:57
1、线程简析
现在的操作系统是多任务操作系统,多任务即是多个进程,进程是指一个内存中运行的应用程序,每个进程都有自己独立的一块内存空间,一个进程中可以启动多个线程,多线程是实现多任务的一种方式,线程是指进程中的一个执行流程,一个进程中可以运行多个线程。线程也称作轻量级进程。
多任务同时进行,在单核系统是不是真正意义上的同时,在线程之间实际上轮换执行,多核系统才能实现
2、定义线程
(1)扩展java.lang.Thread类,重写run()方法。
(2)实现java.lang.Runnable接口,重写run()方法。
3、实例化线程
(1)如果是扩展java.lang.Thread类的线程,则直接new即可。
(2)如果是实现了java.lang.Runnable接口的类,则用Thread的构造方法:
Thread(Runnable target)
Thread(Runnable target, String name)
Thread(ThreadGroup group, Runnable target)
Thread(ThreadGroup group, Runnable target, String name)
Thread(ThreadGroup group, Runnable target, String name, long stackSize)
4、启动线程
在线程的Thread对象上调用start()方法,而不是run()或者别的方法。
在调用start()方法之前:线程处于新状态中,新状态指有一个Thread对象,但还没有一个真正的线程。
在调用start()方法之后:发生了一系列复杂的事情
启动新的执行线程(具有新的调用栈);
该线程从新状态转移到可运行状态;
当该线程获得机会执行时,其目标run()方法将运行。
注意:对Java来说,run()方法没有任何特别之处。像main()方法一样,它只是新线程知道调用的方法名称(和签名)。因此,在Runnable上或者Thread上调用run方法是合法的。但并不启动新的线程。
3、代码实现(实现java.lang.Runnable接口)
实现Runnable接口
package com.xxx.util;/** * Created with IntelliJ IDEA. * Date: 15-3-24 * Time: 下午4:14 * To change this template use File | Settings | File Templates. */public class Multiplication implements Runnable{ private int num; public Multiplication(int num){ this.num = num; } @Override public void run() { for(int i=1;i<10;i++) { System.out.printf(Thread.currentThread().getName() + ":%d*%d=%d\n", num, i, num * i); } }}
main函数
package com.xxx.util;/** * Created with IntelliJ IDEA. * Date: 15-3-24 * Time: 下午3:57 * To change this template use File | Settings | File Templates. */public class Main { public static void main(String[] args){ for(int i=1;i<10;i++){ Multiplication multiplication = new Multiplication(i); Thread thread = new Thread(multiplication); thread.start(); } }}
- 线程之一:JAVA线程基础
- 线程之一:JAVA线程基础
- java线程学习基础
- Java基础 -- 线程
- Java基础 -- 线程2
- JAVA线程基础
- Java 线程基础
- Java线程基础1
- java线程基础
- java基础 线程
- Java 线程基础
- java 线程基础
- 十三、Java线程基础
- java线程基础
- java基础之线程
- JAVA线程基础(一)
- Java基础之线程
- java基础--线程总结
- 检测空字符
- android service中进行模拟按键的限制条件
- 《深入理解java虚拟机》学习笔记4——Java虚拟机垃圾收集器
- 黑马程序员——Java->反射
- 把本地扩展打包成crx的方法
- java线程基础
- Mockplus 的主要应用人群
- ubuntu安装之后的最初几天一路杂记
- 浙大PAT水题简单分析 转
- 《史蒂夫·乔布斯传》读后感
- 主席树模版
- Android手机目前常见的分辨率
- Java自学总结之八序列化
- 多态 继承 复合