Java 线程是什么-渐入佳境
线程:(一)什么是线程
管哥说:程序中有多个执行流就叫多线程。多线程是多任务的一种特别的形式.
好处:单个程序可以创建多个并发执行的程序来完成各自的任务。
多线程能满足程序员编写高效率的程序来达到充分利用 CPU 的目的。
进程:一个进程包括由操作系统分配的内存空间,包含一个或多个线程。
一个线程不能独立的存在,它必须是进程的一部分。一个进程一直运行,直到所有的非守护线程都结束运行后才能结束。
时间轮转片: 每个线程都有自己的寄存器
创建线程的方法:
通过实现 Runnable 接口;
通过继承 Thread 类本身;
通过 Callable 和 Future 创建线程。
开启线程的小例子:
开始实战(一)卖票:
三个窗口同时卖100张票;当票数还有时,就能够卖票(建立三个线程去做同一件事情)
Thread.currentThread().getName();//获取线程优先级高的窗口的名字(此处为系统随机抽取一个优先级高的窗口) 卖票程序,多线程即多窗口同时卖100张票,此处注意系统打印是没有先后顺序的
结果:
窗口:窗口2正在卖第100张票
窗口:窗口2正在卖第99张票
窗口:窗口2正在卖第98张票
窗口:窗口2正在卖第97张票
窗口:窗口2正在卖第96张票
窗口:窗口2正在卖第95张票
窗口:窗口2正在卖第94张票
窗口:窗口2正在卖第93张票
窗口:窗口2正在卖第92张票
窗口:窗口2正在卖第91张票
窗口:窗口2正在卖第90张票
窗口:窗口2正在卖第89张票
窗口:窗口2正在卖第88张票
窗口:窗口2正在卖第87张票
窗口:窗口2正在卖第86张票
窗口:窗口2正在卖第85张票
窗口:窗口2正在卖第84张票
窗口:窗口2正在卖第83张票
窗口:窗口2正在卖第82张票
窗口:窗口2正在卖第81张票
窗口:窗口2正在卖第80张票
窗口:窗口2正在卖第79张票
窗口:窗口2正在卖第78张票
窗口:窗口2正在卖第77张票
窗口:窗口2正在卖第76张票
窗口:窗口2正在卖第75张票
窗口:窗口2正在卖第74张票
窗口:窗口2正在卖第73张票
窗口:窗口2正在卖第72张票
窗口:窗口2正在卖第71张票
窗口:窗口2正在卖第70张票
窗口:窗口2正在卖第69张票
窗口:窗口2正在卖第68张票
窗口:窗口2正在卖第67张票
窗口:窗口2正在卖第66张票
窗口:窗口1正在卖第65张票
窗口:窗口1正在卖第64张票
窗口:窗口1正在卖第63张票
窗口:窗口1正在卖第62张票
窗口:窗口1正在卖第61张票
窗口:窗口1正在卖第60张票
窗口:窗口1正在卖第59张票
窗口:窗口1正在卖第58张票
窗口:窗口1正在卖第57张票
窗口:窗口1正在卖第56张票
窗口:窗口1正在卖第55张票
窗口:窗口1正在卖第54张票
窗口:窗口1正在卖第53张票
窗口:窗口1正在卖第52张票
窗口:窗口1正在卖第51张票
窗口:窗口1正在卖第50张票
窗口:窗口1正在卖第49张票
窗口:窗口1正在卖第48张票
窗口:窗口1正在卖第47张票
窗口:窗口1正在卖第46张票
窗口:窗口1正在卖第45张票
窗口:窗口1正在卖第44张票
窗口:窗口1正在卖第43张票
窗口:窗口1正在卖第42张票
窗口:窗口1正在卖第41张票
窗口:窗口1正在卖第40张票
窗口:窗口1正在卖第39张票
窗口:窗口1正在卖第38张票
窗口:窗口1正在卖第37张票
窗口:窗口1正在卖第36张票
窗口:窗口1正在卖第35张票
窗口:窗口1正在卖第34张票
窗口:窗口1正在卖第33张票
窗口:窗口1正在卖第32张票
窗口:窗口1正在卖第31张票
窗口:窗口1正在卖第30张票
窗口:窗口2正在卖第65张票
窗口:窗口2正在卖第29张票
窗口:窗口2正在卖第28张票
窗口:窗口2正在卖第27张票
窗口:窗口2正在卖第26张票
窗口:窗口2正在卖第25张票
窗口:窗口2正在卖第24张票
窗口:窗口2正在卖第23张票
窗口:窗口2正在卖第22张票
窗口:窗口2正在卖第21张票
窗口:窗口2正在卖第20张票
窗口:窗口2正在卖第19张票
窗口:窗口2正在卖第18张票
窗口:窗口2正在卖第17张票
窗口:窗口2正在卖第16张票
窗口:窗口2正在卖第15张票
窗口:窗口2正在卖第14张票
窗口:窗口2正在卖第13张票
窗口:窗口2正在卖第12张票
窗口:窗口2正在卖第11张票
窗口:窗口2正在卖第10张票
窗口:窗口3正在卖第16张票
窗口:窗口3正在卖第8张票
窗口:窗口3正在卖第7张票
窗口:窗口3正在卖第6张票
窗口:窗口3正在卖第5张票
窗口:窗口3正在卖第3张票
窗口:窗口3正在卖第2张票
窗口:窗口3正在卖第1张票
窗口:窗口2正在卖第9张票
窗口:窗口1正在卖第4张票
开始实战(二)刷碗烧水,倒计时
请观看我的上一篇文章。。
Java 线程是什么-渐入佳境的更多相关文章
- Java线程并发:知识点
Java线程并发:知识点 发布:一个对象是使它能够被当前范围之外的代码所引用: 常见形式:将对象的的引用存储到公共静态域:非私有方法中返回引用:发布内部类实例,包含引用. 逃逸:在对象尚未准备 ...
- Java线程的概念
1. 计算机系统 使用高速缓存来作为内存与处理器之间的缓冲,将运算需要用到的数据复制到缓存中,让计算能快速进行:当运算结束后再从缓存同步回内存之中,这样处理器就无需等待缓慢的内存读写了. 缓 ...
- Java 线程池框架核心代码分析--转
原文地址:http://www.codeceo.com/article/java-thread-pool-kernal.html 前言 多线程编程中,为每个任务分配一个线程是不现实的,线程创建的开销和 ...
- 细说进程五种状态的生老病死——双胞胎兄弟Java线程
java线程的五种状态其实要真正高清,只需要明白计算机操作系统中进程的知识,原理都是相同的. 系统根据PCB结构中的状态值控制进程. 单CPU系统中,任一时刻处于执行状态的进程只有一个. 进程的五种状 ...
- 【转载】 Java线程面试题 Top 50
Java线程面试题 Top 50 不管你是新程序员还是老手,你一定在面试中遇到过有关线程的问题.Java语言一个重要的特点就是内置了对并发的支持,让Java大受企业和程序员 的欢迎.大多数待遇丰厚的J ...
- 第24章 java线程(3)-线程的生命周期
java线程(3)-线程的生命周期 1.两种生命周期流转图 ** 生命周期:**一个事物冲从出生的那一刻开始到最终死亡中间的过程 在事物的漫长的生命周期过程中,总会经历不同的状态(婴儿状态/青少年状态 ...
- 第23章 java线程通信——生产者/消费者模型案例
第23章 java线程通信--生产者/消费者模型案例 1.案例: package com.rocco; /** * 生产者消费者问题,涉及到几个类 * 第一,这个问题本身就是一个类,即主类 * 第二, ...
- 第22章 java线程(2)-线程同步
java线程(2)-线程同步 本节主要是在前面吃苹果的基础上发现问题,然后提出三种解决方式 1.线程不安全问题 什么叫线程不安全呢 即当多线程并发访问同一个资源对象的时候,可能出现不安全的问题 对于前 ...
- 第21章 java线程(1)-线程初步
java线程(1)-线程初步 1.并行和并发 并行和并发是即相似又有区别: 并行:指两个或者多个事件在同一时刻点发生. 并发:指两个或多个事件在同一时间段内发生 在操作系统中,并发性是指在一段事件内宏 ...
随机推荐
- Tcl学习之--列表|字典
[列表|字典] Tcl使用列表来处理各种集合,比方一个目录中的全部文件,以及一个组件的全部选项.最简单的列表就是包括由随意个空格.制表符.换行符.分隔的随意多个元素的字符串.比方: JerryAlic ...
- 谁是性能杀手?Kafka多Topic下启用SSL时延增大问题分析
问题背景 项目中将Kafka接口进行RESTful封装,在使用RESTful接口进行性能测试时,发现Topic数增多后,开启SSL与非SSL进行测试,发现开启SSL后性能下降得厉害.例如600个Top ...
- Codeforces 480B Long Jumps 规律题
题目链接:点击打开链接 题意: 输出n l x y 有一根直尺长度为l 上面有n个刻度. 以下n个数字是距离开头的长度(保证第一个数字是0,最后一个数字是l) 要使得 直尺中存在某2个刻度的距离为x ...
- SGU 321 知道了双端队列,
思路: 贪心. 每次删除最上面的边.. #include<utility> #include<iostream> #include<vector> #include ...
- 2016/3/24 ①数据库与php连接 三种输出fetch_row()、fetch_all()、fetch_assoc() ②增删改时判断(布尔型) ③表与表之间的联动 ④下拉菜单 ⑤登陆 三个页面
①数据库与php连接 图表 header("content-type:text/html;charset=utf-8"); //第一种方式: //1,生成连接,连接到数据库上的 ...
- DRF的认证,频率,权限
1,DRF的认证 初识认证:浏览器是无状态的,一次导致每次发的请求都是新的请求,所以每次请求,服务器都会进行校验,这样就很繁琐,这趟我们就需要给每一个用户登录后一个新的标识,浏览器每次都会带着这个唯一 ...
- iOS开发——高级篇——多线程GCD死锁
面试题 请问以下代码打印结果: - (void)interview01 { // 以下代码是在主线程执行的 NSLog(@"执行任务1"); dispatch_queue_t qu ...
- Win10快捷键总结
微软自发布Windows10以来,大部分的电脑系统都已更新.除了大量的新功能和界面改进,Windows 10中同样包含了一批新的键盘快捷键.熟练使用这些快捷键可以大大提高操作效率,很实用,推荐大家收藏 ...
- FOUNDATION OF ASYNCHRONOUS PROGRAMMING
The async and await keywords are just a compiler feature. The compiler creates code by using the Tas ...
- ATan2与ATan的区别
相比较ATan,ATan2究竟有什么不同?本篇介绍一下ATan2的用法及使用条件. 对于tan(θ) = y / x: θ = ATan(y / x)求出的θ取值范围是[-PI/2, PI/2]. θ ...