java 多线程2
来源:互联网 发布:爱淘宝是淘宝客吗 编辑:程序博客网 时间:2024/04/27 22:08
复习:
线程
1、让我们应用程序可以在同一时间处理多个任务(在同一时间我们有两段程序(多个对象)在执行)。
2、处理多任务不只是线程,在我们操作系统是支持多任务的(使用的是多进程来完成的)
3、在我们操作系统中可以执行多个应用程序,每一个应用程序的一次执行就是一个进程。
在这个进程多可以有多个线程来处理多个任务。
4、进程之间资源消耗太好,效率不高,线程之间通信比较简单,效率也高,一般我们来处理多任务
都是使用线程来完成。
5、通常情况下,我们的java 程序的main 函数入口,就是一个应用程序的执行,我们也把这个主函数
执行的程序叫主线程,在这个主线程中我们可以创建并且启动多个子线程。
6、如果有任何一个子线程没有结束,那么主线程就不可能停止。如果说主线程停止,那么在这个
主线程中的所有子线程都将停止。
7、java 的程序创建线程类的方式:
都要重写父类或者接口中run 方法,这个方法将是每个线程要执行的内容,就相当于是子线程
主函数。
Thread 是Runnable 接口实现类。
1) 继承Thread类
2) 实现Runnable 接口
8、创建线程(其实就是去创建线程类的对象)
MyThread mt = new MyThread();
调用setName 设置线程名称,也可以在这个类创建有参数的构造函数来设置线程的名称。
MyThread2 mt2 = new MyThread2();
借助Thread 类才可以完整创建这个线程,甚至可以使用这一个对象创建多个线程(资源共享)
同样可以调用setName ,Thread t = new Thread(mt2,"t2");
9、启动线程
都得去调用start 方法,这个方法是Thread 类的,Runnable 接口的线程对象,要启动就必须
借助Thread 类。
就算我们调用start 方法,也只是让我们的线程处于就绪状态,到底什么时候运行,取决于cpu
10、线程在运行的过程中(在整个生命周期中,有很多状态)
初始化(new 一个了线程)
就绪状态(准备,可运行)
运行状态(线程阻塞:睡眠,合并,暂停,等待,同步)
停止
11、线程调度(线程的状态变化,这个变化的过程就是线程的调度)
1) currentThread() 得到当前正在运行的线程对象。Thread.currentThread();
2) sleep(), 让当前线程 休眠一定时间,精确到毫秒, 时间到了以后,就会进入就绪状态。
3) 判断线程是否还活着。t.isAlive()
4) stop(), 线程停止。
5)join(),等待线程终止,线程的合并。就相当于是一个线程在执行。
6)yield(),把自己的执行机会让给别人,高风亮节。不代表不执行了,而是让给了别人。
自己又直接处于就与状态,不属于阻塞。
7)setPriority 线程的优先级 getPriority
默认都是5, 1---10, 区间, 只有1(最低) 5(默认) 10(最高优先级)
如果你设置了优先级,也只是让这个线程执行几率多一些。
12、多线程共享资源接水的例子。(线程的同步的问题)synchronized
线程多任务中,抢占式多任务。
排队多任务(同步多任务)。synchronized
让你的资源是有限制的,如果这个资源正在被一个线程占用,其他线程就不能使用。
13、作业:火车售票售票模拟.
1、火车站站10张票, 1901次 12-01,三个人买票。
2、火车站站10张票, 1901次 12-01,三个窗口,三个人买票。
14、线程等待和唤醒。 wait notfiy notfiyall synchronized
等待和唤醒的方法都是Object 类,任何类都会有这个些方法。
生产者和消费者Producer Consume SyncStack WoTou
15、死锁。正常编码,正常程序执行中是不允许出现的。
两个线程都处于互相等待的状态。
作业:java 中关键字加解释。
线程
1、让我们应用程序可以在同一时间处理多个任务(在同一时间我们有两段程序(多个对象)在执行)。
2、处理多任务不只是线程,在我们操作系统是支持多任务的(使用的是多进程来完成的)
3、在我们操作系统中可以执行多个应用程序,每一个应用程序的一次执行就是一个进程。
在这个进程多可以有多个线程来处理多个任务。
4、进程之间资源消耗太好,效率不高,线程之间通信比较简单,效率也高,一般我们来处理多任务
都是使用线程来完成。
5、通常情况下,我们的java 程序的main 函数入口,就是一个应用程序的执行,我们也把这个主函数
执行的程序叫主线程,在这个主线程中我们可以创建并且启动多个子线程。
6、如果有任何一个子线程没有结束,那么主线程就不可能停止。如果说主线程停止,那么在这个
主线程中的所有子线程都将停止。
7、java 的程序创建线程类的方式:
都要重写父类或者接口中run 方法,这个方法将是每个线程要执行的内容,就相当于是子线程
主函数。
Thread 是Runnable 接口实现类。
1) 继承Thread类
2) 实现Runnable 接口
8、创建线程(其实就是去创建线程类的对象)
MyThread mt = new MyThread();
调用setName 设置线程名称,也可以在这个类创建有参数的构造函数来设置线程的名称。
MyThread2 mt2 = new MyThread2();
借助Thread 类才可以完整创建这个线程,甚至可以使用这一个对象创建多个线程(资源共享)
同样可以调用setName ,Thread t = new Thread(mt2,"t2");
9、启动线程
都得去调用start 方法,这个方法是Thread 类的,Runnable 接口的线程对象,要启动就必须
借助Thread 类。
就算我们调用start 方法,也只是让我们的线程处于就绪状态,到底什么时候运行,取决于cpu
10、线程在运行的过程中(在整个生命周期中,有很多状态)
初始化(new 一个了线程)
就绪状态(准备,可运行)
运行状态(线程阻塞:睡眠,合并,暂停,等待,同步)
停止
11、线程调度(线程的状态变化,这个变化的过程就是线程的调度)
1) currentThread() 得到当前正在运行的线程对象。Thread.currentThread();
2) sleep(), 让当前线程 休眠一定时间,精确到毫秒, 时间到了以后,就会进入就绪状态。
3) 判断线程是否还活着。t.isAlive()
4) stop(), 线程停止。
5)join(),等待线程终止,线程的合并。就相当于是一个线程在执行。
6)yield(),把自己的执行机会让给别人,高风亮节。不代表不执行了,而是让给了别人。
自己又直接处于就与状态,不属于阻塞。
7)setPriority 线程的优先级 getPriority
默认都是5, 1---10, 区间, 只有1(最低) 5(默认) 10(最高优先级)
如果你设置了优先级,也只是让这个线程执行几率多一些。
12、多线程共享资源接水的例子。(线程的同步的问题)synchronized
线程多任务中,抢占式多任务。
排队多任务(同步多任务)。synchronized
让你的资源是有限制的,如果这个资源正在被一个线程占用,其他线程就不能使用。
13、作业:火车售票售票模拟.
1、火车站站10张票, 1901次 12-01,三个人买票。
2、火车站站10张票, 1901次 12-01,三个窗口,三个人买票。
14、线程等待和唤醒。 wait notfiy notfiyall synchronized
等待和唤醒的方法都是Object 类,任何类都会有这个些方法。
生产者和消费者Producer Consume SyncStack WoTou
15、死锁。正常编码,正常程序执行中是不允许出现的。
两个线程都处于互相等待的状态。
作业:java 中关键字加解释。
0 0
- java多线程 [2]
- java多线程2
- java 多线程(2)
- java多线程2
- java中多线程2
- Java多线程2:synchronized
- Java多线程(2)
- 2、java中的多线程
- JAVA进阶-多线程(2)
- Java多线程2
- Java基础--多线程2
- 多线程2(java基础)
- java基础多线程2
- java多线程2
- Java多线程2
- #java读书笔记#多线程2
- Java多线程(2) 同步
- java多线程 Thread 2
- 51nod 1255 字典序最小的子序列 神奇的栈用法
- PL/SQL--变量
- 《社会很单纯,复杂的是人-雾满拦江》
- HTTP协议
- PDF文件能编辑吗?怎么编辑PDF文件?
- java 多线程2
- HTTP协议浅析(中):请求报文和响应报文
- iOS开发 - 数字快速变化到指定数字
- 设置VC6搜索路径
- 扩展方法 Extend
- SVN 常用 命令
- HADOOP:HDFS的核心知识
- wget命令(下载)
- 如何提高MySQL的安全性!