java 多线程执行过程
1.分支线程执行 过程:

2.线程运行的状态:五大状态
线程: 从新建状态 就绪状态 运行状态 挂起(阻塞)状态 死亡状态(结束,销毁)

3. 多线程:在同一个时间执行多个任务的操作,现在的软件都实现了多线程处理。
4. 进程:计算机中开启的程序,每个进程至少有一个线程在执行。
5. 多线程存在的意义?
可以同时执行多个任务,但多线程执行的时候效率要低于 单线程。
6.多线程 创建方式?
第一种:
继承 Thread 类,重写run方法,创建子类对象。
创建线程 (new Thread / new 子类对象),开启线程( 对象.start() )
第二种:
实现接口Runnable;(我们以后使用线程一律使用接口Runnable)
Java是单继承,使用了继承后无法继承其他父类,于是 使用了接口,增强了扩展性;
7.多线程的特性?
原子性:
多个线程同时执行,或者都不去执行。
可见性:
线程执行的时候操作的数据,对于其他线程可见。
前一个线程改变后的数据,后一个线程取到的是改变后的数据。
有序性(执行顺序)
线程的执行顺序就是代码的书写顺序。
结果无序
线程的执行结果是没有顺序的(线程虽然获得了,执行权,但是不一定能够执行);
8.线程的休息sleep()方法?
作用:释放cpu的执行权,让其他线程有机会执行。如果不释放执行权,当前线程会将数据全部执行。
9.运行完整状态:

下面实现了一个简单的多线程之间的小例子
http://www.cnblogs.com/nn369/p/8043303.html
java 多线程执行过程的更多相关文章
- Java程序执行过程及内存机制
本讲将介绍Java代码是如何一步步运行起来的,其中涉及的编译器,类加载器,字节码校验器,解释器和JIT编译器在整个过程中是发挥着怎样的作用.此外还会介绍Java程序所占用的内存是被如何管理的:堆.栈和 ...
- Java代码执行过程概述
Java代码经历三个阶段:源代码阶段(Source) -> 类加载阶段(ClassLoader) -> 运行时阶段(Runtime) 首先我们来理清一下Java代码整个执行过程, 让我们对 ...
- Java编译执行过程
在刷软件设计师中级考试的题目,判断关于编译系统对某高级语言进行翻译的叙述的对错.记得刚开始学Java的时候自己就觉得自己对程序的执行过程理解的相当的透彻,但是一对答案,我的小心脏就有点受不了了,特此在 ...
- 【JAVA】【基础知识】Java程序执行过程
1. Java程序制作过程 使用文本编辑器进行编辑 2. 编译源文件,生成class文件(字节码文件) javac源文件路径. 3.运行程序class文件.
- Java程序执行过程
首先,写好Java代码,保存到硬盘中.然后在命令行中输入: javac ClassName.java 此时,这个Java类文件将编译成字节码(.class)文件.如果用Eclipse等IDE开发工具, ...
- java多线程执行问题
class Demo extends Thread{ public Demo(String name){ super(name); } public void run(){ for(int i=0; ...
- java 多线程执行时长统计
ExecutorService——shutdown方法和awaitTermination方法 shutdown方法:平滑的关闭ExecutorService,当此方法被调用时,ExecutorServ ...
- Java 多线程执行
背景: 如果一个任务由多个子任务组成,子任务全部执行完成后然后由主线程对所有子任务结果进行封装,可以采用如下几种方式: 1.基于Guava ListenableFuture 进行: 2.基于Futur ...
- java多线程执行时主线程的等待
1.通过thread.join()方式,注意:如果有多个子线程,需要将全部的线程先start,然后再join.代码示例如下: public class Main { public static ...
随机推荐
- static成员变量和static成员函数例程
#include "pch.h" #include <iostream> using namespace std; class goods { public: good ...
- 数组其他部分及java常见排序
数据结构的基本概述: 数据结构是讲什么,其实大概就分为两点: 1.数据与数据之间的逻辑关系:集合.一对一.一对多.多对多 2.数据的存储结构: 一对一的:线性表:顺序表(比如:数组).链表.栈(先进后 ...
- mysql5.1解压版安装
1.如果已经安装别的版本先卸载干净,cmd管理员权限登录,mysql\bin目录:mysqld -remove 2.环境变量 MYSQL:path 3.my.ini [mysqld]port=3306 ...
- java HelloWorld时报错:"找不到或无法加载主类"问题的解决办法
学习java的第一天: 当我在做Java入门的时候,根据教程写的第一个Java程序是: public class Hello{ public static void main(String args[ ...
- 解决centos被minerd挖矿程序入侵方法
记录一次服务器被入侵的解决方法 一:问题说明 1.我的服务器是使用的阿里云的CentOS,收到的阿里云发来的提示邮件如下 然后我查看了运行的进程情况(top 命令),看到一个名为minerd的进程占用 ...
- C#常用的引用
1.使用ConfigurationManager需要在.net引用中添加System.Configuration引用 2.使用HttpContext需要在.net引用中添加System.Web引用
- js函数声明提升与变量提升
变量提升 变量提升: 在指定作用域里,从代码顺序上看是变量先使用后声明,但运行时变量的 “可访问性” 提升到当前作用域的顶部,其值为 undefined ,没有 “可用性”. alert(a); // ...
- Python+Selenium(webdriver常用API)
总结了Python+selenium常用的一些方法函数,以后有新增再随时更新: 加载浏览器驱动: webdriver.Firefox() 打开页面:get() 关闭浏览器:quit() 最大化窗口: ...
- (转载)Eclipse快捷键大全
Ctrl+1 快速修复(最经典的快捷键,就不用多说了)Ctrl+D: 删除当前行 Ctrl+Alt+↓ 复制当前行到下一行(复制增加)Ctrl+Alt+↑ 复制当前行到上一行(复制增加)Alt+↓ 当 ...
- django 中间件记录所有请求及请求执行时间
class LoggingMiddleware(object): def process_request(self, request): request.start_time = time.time( ...