线程:(一)什么是线程

管哥说:程序中有多个执行流就叫多线程。多线程是多任务的一种特别的形式.
好处:单个程序可以创建多个并发执行的程序来完成各自的任务。
多线程能满足程序员编写高效率的程序来达到充分利用 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 线程是什么-渐入佳境的更多相关文章

  1. Java线程并发:知识点

    Java线程并发:知识点   发布:一个对象是使它能够被当前范围之外的代码所引用: 常见形式:将对象的的引用存储到公共静态域:非私有方法中返回引用:发布内部类实例,包含引用.   逃逸:在对象尚未准备 ...

  2. Java线程的概念

    1.      计算机系统 使用高速缓存来作为内存与处理器之间的缓冲,将运算需要用到的数据复制到缓存中,让计算能快速进行:当运算结束后再从缓存同步回内存之中,这样处理器就无需等待缓慢的内存读写了. 缓 ...

  3. Java 线程池框架核心代码分析--转

    原文地址:http://www.codeceo.com/article/java-thread-pool-kernal.html 前言 多线程编程中,为每个任务分配一个线程是不现实的,线程创建的开销和 ...

  4. 细说进程五种状态的生老病死——双胞胎兄弟Java线程

    java线程的五种状态其实要真正高清,只需要明白计算机操作系统中进程的知识,原理都是相同的. 系统根据PCB结构中的状态值控制进程. 单CPU系统中,任一时刻处于执行状态的进程只有一个. 进程的五种状 ...

  5. 【转载】 Java线程面试题 Top 50

    Java线程面试题 Top 50 不管你是新程序员还是老手,你一定在面试中遇到过有关线程的问题.Java语言一个重要的特点就是内置了对并发的支持,让Java大受企业和程序员 的欢迎.大多数待遇丰厚的J ...

  6. 第24章 java线程(3)-线程的生命周期

    java线程(3)-线程的生命周期 1.两种生命周期流转图 ** 生命周期:**一个事物冲从出生的那一刻开始到最终死亡中间的过程 在事物的漫长的生命周期过程中,总会经历不同的状态(婴儿状态/青少年状态 ...

  7. 第23章 java线程通信——生产者/消费者模型案例

    第23章 java线程通信--生产者/消费者模型案例 1.案例: package com.rocco; /** * 生产者消费者问题,涉及到几个类 * 第一,这个问题本身就是一个类,即主类 * 第二, ...

  8. 第22章 java线程(2)-线程同步

    java线程(2)-线程同步 本节主要是在前面吃苹果的基础上发现问题,然后提出三种解决方式 1.线程不安全问题 什么叫线程不安全呢 即当多线程并发访问同一个资源对象的时候,可能出现不安全的问题 对于前 ...

  9. 第21章 java线程(1)-线程初步

    java线程(1)-线程初步 1.并行和并发 并行和并发是即相似又有区别: 并行:指两个或者多个事件在同一时刻点发生. 并发:指两个或多个事件在同一时间段内发生 在操作系统中,并发性是指在一段事件内宏 ...

随机推荐

  1. Codeforces466C Number of Ways

    题目链接: http://codeforces.com/problemset/problem/466/C 题意: 给一个长度为n的数组,将其分成连续的三段使三段的和相等.求有几种这种组合 分析: 从头 ...

  2. Visual Studio Code 常用插件

    这里记录在Visual Studio Code中,我经常用到的插件. C#这个就不必说了,想用VIsual Studio Code调试和编辑C#代码,必须要装这个插件.东西还好,就是每次安装和更新插件 ...

  3. windows内存管理的机制以及优缺点

    分页存储管理基本思想:用户程序的地址空间被划分成若干固定大小的区域,称为“页”,相应地,内存空间分成若干个物理块,页和块的大小相等.可将用户程序的任一页放在内存的任一块中,实现了离散分配. 分段存储管 ...

  4. NS3网络仿真(9): 构建以太网帧

    快乐虾 http://blog.csdn.net/lights_joy/ 欢迎转载,但请保留作者信息 在NS3使用了一个叫Packet的类来表示一个数据帧,本节尝试用它构造一个以太网帧. 以下是一个典 ...

  5. What are some advantages of using Node.js over a Flask API?

    https://www.quora.com/What-are-some-advantages-of-using-Node-js-over-a-Flask-API Flask is a Python w ...

  6. LDAP方式连接AD获取用户信息

    LDAP资料介绍可以参考:http://wenku.baidu.com/view/262742f9f705cc17552709f9.html ldap访问AD域的的错误一般会如下格式: Ldap lo ...

  7. windows安装SVN服务器并设置开机启动

    1.安装SVN服务器,到http://subversion.apache.org/packages.html上下载windows版的SVN,并安装,在命令行下运行svn命令,如下所以,则svn服务器安 ...

  8. forword 与 redirect

    直接转发方式(Forward) 客户端和浏览器只发出一次请求,Servlet.HTML.JSP或其它信息资源,由第二个信息资源响应该请求,在请求对象request中,保存的对象对于每个信息资源是共享的 ...

  9. POJ1177 Picture —— 求矩形并的周长 线段树 + 扫描线 + 离散化

    题目链接:https://vjudge.net/problem/POJ-1177 A number of rectangular posters, photographs and other pict ...

  10. EF3:Entity Framework三种开发模式实现数据访问

    前言 Entity Framework支持Database First.Model First和Code Only三种开发模式,各模式的开发流程大相径庭,开发体验完全不一样.三种开发模式各有优缺点,对 ...