黑马程序员_多线程_1
来源:互联网 发布:数学建模数据收集 编辑:程序博客网 时间:2024/05/18 00:27
——- android培训、java培训、期待与您交流! ———-
进程:一个正在执行的程序,每一个进程执行都有一个执行顺序,该顺序是一个执行路径或者控制单元
线程:进程中一个独立的控制单元,线程控制着进程的执行
一个进程至少有一个线程
两种创建线程的方式:
一、
1、定义类,集成Thread
2、复写run方法,将自定义代码存储在run方法中,让线程运行
3、调用线程的start方法,该方法两个作用:启动线程,调用run方法
二、
1、定义类实现Runnable接口
2、覆盖Runnable接口中的run方法,将线程要运行的代码存放在该run方法中
3、通过Thread类建立线程对象
4、将Runnable接口的子类对象作为实际参数传递给Thread类的构造函数
5、调用Thread类的start方法开启线程并调用Runnable接口子类的run方法
—————————————————————
实际操作:
//第一种方法
class PrimeThread extends Thread {
long minPrime;
PrimeThread(long minPrime) {
this.minPrime = minPrime;
}
public void run() { // compute primes larger than minPrime . . . } }
//创建并启动一个线程
PrimeThread p = new PrimeThread(143);
p.start();
//第二种方法
class PrimeRun implements Runnable {
long minPrime;
PrimeRun(long minPrime) {
this.minPrime = minPrime;
}
public void run() { // compute primes larger than minPrime . . . } }//创建并启动线程 PrimeRun p = new PrimeRun(143); new Thread(p).start();
随文附上一份两种方式创建线程的实例代码
//继承类的方式
public class ThreadDemo extends Thread { //apple初始数量20个 private static int appleNum = 20; //小孩名,便于打印时候区分 private String childName; ThreadDemo(String name){ this.childName = name; } public void run(){ //两个小孩分别初始食用数量0 int childEat = 0; while(true){ //开始吃,每次吃一个,appleNum最低不能为0 if(appleNum>0){ childEat++; appleNum--; System.out.println(childName+"吃了:"+childEat+"个;还剩:"+appleNum); } } }}
//实现接口的方式
class ThreadDemo_2 implements Runnable { //apple初始数量20个 private static int appleNum = 20; //小孩名,便于打印时候区分 private String childName; ThreadDemo_2(String name){ this.childName = name; } public void run(){ //两个小孩分别初始食用数量0 int childEat = 0; while(true){ //开始吃,每次吃一个,appleNum最低不能为0 if(appleNum>0){ childEat++; appleNum--; System.out.println(childName+"吃了:"+childEat+"个;还剩:"+appleNum); } } }}
- 黑马程序员_多线程_1
- 黑马程序员_JAVA多线程_1
- 黑马程序员_JAVA多线程_1
- 黑马程序员_基础加强_1
- 黑马程序员_多线程
- 黑马程序员_多线程
- 黑马程序员_多线程
- 黑马程序员_多线程
- 黑马程序员_多线程
- 黑马程序员_多线程
- 黑马程序员_多线程
- 黑马程序员_多线程
- 黑马程序员_多线程
- 黑马程序员_多线程
- 黑马程序员_多线程
- 黑马程序员_多线程
- 黑马程序员_多线程
- 黑马程序员_多线程
- UITextField输入框中是否有个叉号(用于一次性删除输入框中的内容)
- MySQL笔记之数据备份与还原的使用
- python __file__的绝对路径与import的搜索路径
- js实现文本框提示
- javabean 不同的类 相同属性赋值
- 黑马程序员_多线程_1
- Android之WebRTC介绍
- Android中Context简介
- 禁止输入表情符号
- 26. 配置别名
- 最新《VRay 2.0 for sketchup渲染教程》发布芹
- 在Android中不要将数据存储在Application类中,
- ubuntu 15.04 32b bitcoin 0.91
- 如何提高代码质量1