线程:(一)什么是线程

管哥说:程序中有多个执行流就叫多线程。多线程是多任务的一种特别的形式.
好处:单个程序可以创建多个并发执行的程序来完成各自的任务。
多线程能满足程序员编写高效率的程序来达到充分利用 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. 编写高质量代码:改善C#程序的157个建议

    目录 前 言第一部分 语言篇第1章 基本语言要素 / 2建议1:正确操作字符串 / 2建议2:使用默认转型方法 / 6建议3:区别对待强制转型与as和is / 9建议4:TryParse比Parse好 ...

  2. PHP swfupload图片上传实例

    swfupload已经是第二次研究,这次自已整了个简单demo,无奈菜鸟最杯… PHP代码如下: if (isset($_FILES["Filedata"]) || !is_upl ...

  3. Domino/Xpages Bootstrap 动态生成首页功能

    因为之前用户须要做个动态首页的功能,但一般用户又不熟HTML,所以最佳的方法能够使用拖动的方法来配置首页,一些主要的组件是已经帮用户的依据实际数据情况已经制作OK,用户仅仅须要简单配置就能够更改首页, ...

  4. 从程序员角度看ELF | Linux-Programming (转)

    ★概要: 这片文档从程序员的角度讨论了linux的ELF二进制格式.介绍了一些ELF执行 文件在运行控制的技术.展示了如何使用动态连接器和如何动态装载ELF. 我们也演示了如何在LINUX使用GNU ...

  5. Android NDK编程浅入深出之--Android.mk

        Android.mk Android.mk是一个向Android NDK构建系统描写叙述NDK项目的GUN Makefile片段.它是每个NDK项目的必备组件. 构建系统希望它出如今jni子文 ...

  6. js的几种循环语句

    //js种的循环语句 //while与do while的区别是while是满足条件后才执行 //do while是不管满不满足条件都会执行一次 //for 循环与while,do while相比循环结 ...

  7. showModalDialog参数问题

    showModalDialog传递参数: 1.参数拼接放在url中,参数过长或带特殊字符时,容易出现问题. 2.参数放在showModalDialog属性里 <script type=" ...

  8. shinx索引部分源码分析——过程:连接到CSphSource对应的sql数据源,通过fetch row取其中一行,然后解析出field,分词,获得wordhit,最后再加入到CSphSource的Hits里

    CSphSource 数据源 CSphSource_XMLPipe2-XML文件获取数据 CSphSource_SQL-SQL(MySQL)获取数据 CSphIndex 索引器 派生类CSphInde ...

  9. java代码实现JDBC连接MySql以及引用驱动程序包

    JDBC链接MySql     JDBC链接MySql的话题已经老掉牙了,这次我只想通过使用简洁的代码实现,采用封装的思想,将链接MySql的代码封装在类的静态方法中,供一次性调用返回java.sql ...

  10. 推荐一款很好用的调试js的eclipse插件

    ie调试的话用 Companion.JS 一个插件 很好用的 不用配置,直接安装eclipse调试的话 可以用jsdt 可能需要配置下 网上有很多说明http://wokaours.blog.163. ...