corejava笔记1 多线程
来源:互联网 发布:java和android区别 编辑:程序博客网 时间:2024/03/29 15:08
Java支持多线程
JAVA 在语言级支持多线程。分配时间的仍然是OS。
一. 什么是线程:
线程是一个并发执行的顺序流,一个进程包括多个顺序执行流程,这种执行流程成为线程。线程是一个操作系统创建并维护的一个资源,对于操作系统来说Java虚拟机就是一个进程,对于单核的CPU的计算机来说某时刻只能有一个线程在运行。
一个Thread对象就表示一个进程。
线程有三部分组成:
(1). cpu费分配线程的时间片(cpu把某段时间分给一个线程,到时间后,其他线程执行)
(2). 线程代码(写在run()方法中)
(3). 线程数据
线程和进程的区别:
线程是独立的数据空间
进程是共享的数据空间
线程对象
线程对象存在于虚拟机对空间的一块连续的地址空间(静态)
线程与线程对象
线程是动态的,与线程对象是两回事。
线程对象能够像系统申请一个线程资源。
线程对象调用star()方法申请管理一个线程资源。
任务并发执行是一个宏观概念,微观上是串行的。
有两种线程的实现方式(或者叫有两种创建线程的方式):
第一种:创建一个类继承Thread类
class MyThreadA extends Thread{
//重写run()方法(写上想要执行的方法)
public void run() {
char d = 'A';
while(d<='Z') {
System.out.println("d= "+d);
for(int k=0; k<1000000; k++)
;//这样写可以实现空实现
d++;
}
}
//创建主方法(其实最好单独写个类)
public static void main(String[] args) {
//创建一个线程对象t1
Thread t1 = new MythreadA();
//执行此线程
t1.start();
}
}
第二种:创建一个类实现Runnable接口
class MyThreadB implements Runnable{
//重写run()方法(写上想要执行的方法)
public void run() {
char d = 'A';
while(d<='Z') {
System.out.println("d= "+d);
for(int k=0; k<1000000; k++)
;
d++;
}
}
public static void main(String[] args) {
Runnable target = new MyThread();
Thread t2 = new Thread(target);
t2.start();//启动线程
}
}
线程的七种状态:
- corejava笔记1 多线程
- CoreJAVA笔记
- CoreJava day2 笔记
- CoreJava day12笔记
- CoreJava学习笔记
- corejava
- corejava学习笔记(一)
- corejava笔记 Swing编程未完
- [转]CoreJava学习笔记_Java语法基础
- 大数据——corejava学习笔记
- CoreJava 8th V-1 P17
- CoreJava 8th V-1 P36 常量
- CoreJava 8th V-1 P146
- CoreJava学习笔记-Java核心编程-学习笔记
- CoreJava学习笔记深入浅出个人心得———Day1
- CoreJava 8th V-1 P33 Unicode编码
- CoreJava 8th V-1 P33 浮点数
- CoreJava 8th V-1 P45 检测字符串是否相等
- 求3D点集中最近点的一个空间二叉树实现
- 关于三种主流WEB架构的思考
- Gedit编辑windows文件乱码问题解决
- 交叉编译
- 实现CString 与folat int char * CTime string等的互相转变 (C++)
- corejava笔记1 多线程
- org.logicalcobwebs.proxool.ProxoolFacade.java
- hdoj3631
- php是区分大小写
- 几本好书,地铁上打发的收获--之二(还有其它)
- 开始自己的驱动人生
- 常有检测 php mysql
- 几本好书,地铁上打发的收获
- 如何让SQL注入攻击危害最小化?