线程:(一)什么是线程

管哥说:程序中有多个执行流就叫多线程。多线程是多任务的一种特别的形式.
好处:单个程序可以创建多个并发执行的程序来完成各自的任务。
多线程能满足程序员编写高效率的程序来达到充分利用 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. [经典面试题]在O(1)时间删除链表结点

    [题目] 给定链表的头指针和一个结点指针.在O(1)时间删除该结点.链表结点的定义例如以下: struct ListNode { int        value; struct ListNode*  ...

  2. java中 ++前后差别试题及静态变量一旦赋值不可改变

    package javaTest; public class Increment { private static int k=0; public static void main(String[] ...

  3. 在 Ubuntu 开启 GO 程序编译之旅

    本文将使用 putty 连接到一台阿里云 Ubuntu 16.04 服务器,在其上安装 go 语言的编译环境,旨在呈现从安装到"你好,世界!"涉及的方方面面,希望完成这个过程无须觅 ...

  4. UISlider无法拖动进度条的问题解决

    UISlider无法拖动进度条的问题解决 最近业务中的视频播放使用到了UISlider,但是有一个奇怪的问题,就是在Modar出来的控制器中UISlider是可以正常使用的,但是在Push出来的控制器 ...

  5. MD5加密解密帮助类

    using System; using System.Security.Cryptography; using System.Text; namespace Maticsoft.DBUtility { ...

  6. C# 取html <data>内容

    private void button1_Click(object sender, EventArgs e) { string strSource = GetHttpWebRequest(" ...

  7. YTU 1074: You are my brother

    1074: You are my brother 时间限制: 1 Sec  内存限制: 128 MB 提交: 10  解决: 7 题目描述 Little A gets to know a new fr ...

  8. MyEclipse8.5优化

    MyEclipse8.5优化 第一步: 取消自动validation validation有一堆,什么xml.jsp.jsf.js等等,我们没有必要全部都去自动校验一下,只是需要的时候才会手工校验一下 ...

  9. css层叠上下文和层叠顺序

    普通元素的层叠水平优先由层叠上下文决定,因此,层叠水平的比较只有在当前层叠上下文元素中才有意义. 诸位千万不要把层叠水平和CSS的z-index属性混为一谈.没错,某些情况下z-index确实可以影响 ...

  10. webpack -v显示的版本与package.json的devDependencies节点显示的webpack版本不一致的问题

    最近在学习webpack,遇到个奇葩的问题.就是安装完成webpack后,查看安装的webpack版本与package.json中显示的版本不一致, webpack是局部安装的,非全局安装, 命令1: ...