线程与进程

1.线程:程序中单独顺序的控制流

    线程本身是通过程序进行运行

    线程是程序中的顺序控制流,只能使用分配给程序的资源与环境

2.进程:执行中的程序

    一个进程可以包含一个或多个线程

    一个进程至少要包含一个线程

3.单线程:程序中只存在一个线程,实际上主方法就是一个线程

4.多线程:多线程是一个程序中执行多个任务

     多线程目的是更好地使用CPU资源

线程的实现

1.继承Thread类

2.实现Runnable接口

Thread类在java。lang包中定义,继承Thread必须重写run()

Runnable接口最后还是要调用Thread执行

线程的状态

创建状态:准备好了一个多线程对象

就绪状态:调用start(),等待CPU进行调度

运行状态:执行run()

阻塞状态:暂停执行,可能将资源交给其他线程使用

终止状态(死亡状态):线程销毁

常用方法:

取得线程名称:getName()

取得当前线程对象:currentThread()   ----->currentThread().getName  获取当前线程名称

判断线程是否启动:isAlive()

线程强制运行:join()

线程休眠:sleep()

线程礼让:yield()  执行到指定条件(比如说大于10),暂停当前线程,让其他线程执行

中断线程:interrupt()

线程暂停:wait()

唤醒线程:notify()       notifyAll()

线程优先级:

xxxxxx.setPriority(你想要设置的优先级)

优先级范围是1~10,越大越优先(更可能最先执行,不是一定最先执行),默认为5

MAX_PRIORITY    10

MIN_PRIORITY    1

NORM_PRIORITY    5

生命周期:

线程池:

为什么要用线程池???

假设服务器完成一项任务所需时间为: 创建线程--T1

                    执行任务--T2

                    销毁线程--T3

if(T1+T3)远大于T2,建议使用线程池

线程池包括以下组成部分:

1.线程池管理器:用于创建并管理线程(创建、销毁、添加新任务)

2.工作线程:线程池中的线程,在没有任务时处于等待状态,可以循环地执行任务

3.任务接口:每个人物必须实现的接口,以供工作现场调度执行任务,

主要规定了任务的入口,任务执行后的收尾工作,任务的执行状态等...

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.并行和并发 并行和并发是即相似又有区别: 并行:指两个或者多个事件在同一时刻点发生. 并发:指两个或多个事件在同一时间段内发生 在操作系统中,并发性是指在一段事件内宏 ...

  10. [转]Java线程安全总结

    最近想将java基础的一些东西都整理整理,写下来,这是对知识的总结,也是一种乐趣.已经拟好了提纲,大概分为这几个主题: java线程安全,java垃圾收集,java并发包详细介绍,java profi ...

随机推荐

  1. 第四周Access的总结

    一.问;这节课你学到了什么知识? 答:这周我们学习了新的课程:表的建立和管理.这是Access最重要的一部份,需要我们认认真真学习!            字段是表最重要的信息,而数据类型是字段或表中 ...

  2. 程序的流程控制-分支结构 if

    1.分支结构:if语句 第一种格式: /* if(条件表达式){ 语句体; } 其它语句 */ public class IfDemo1{ public static void main(String ...

  3. day13_雷神_前端01

    #前端 html 服务器端返回的就是一个字符串,浏览器根据html规则去渲染这个字符串. html 是超文本标记语言,相当于定义统一的一套规则,大家都遵守它,这样就可以让浏览器根据标记语言的规则去解释 ...

  4. WPF 显示 mp3 专辑图片

    mp3 专辑图片是属于 mp3 的 tag 的一部分,安装 taglib# 的 nuget 安装包到项目.这里使用 TagLib.Portable https://www.nuget.org/pack ...

  5. Spring AOP的实现及源码解析

    在介绍AOP之前,想必很多人都听说AOP是基于动态代理和反射来实现的,那么在看AOP之前,你需要弄懂什么是动态代理和反射及它们又是如何实现的. 想了解JDK的动态代理及反射的实现和源码分析,请参见下面 ...

  6. 从零开始的程序逆向之路 第一章——认识OD(Ollydbg)以及常用汇编扫盲

    作者:Crazyman_Army 原文来自:https://bbs.ichunqiu.com/thread-43041-1-1.html 0×00 序言: 1.自从上次笔者调戏完盗取文件密码大黑客后, ...

  7. 注意:Tomcat Get请求的坑!

    Tomcat8.5,当Get请求中包含了未经编码的中文字符时,会报以下错误,请求未到应用程序在Tomcat层就被拦截了. Tomcat报错: java.lang.IllegalArgumentExce ...

  8. inception安装使用

    一个集审核.执行.备份及生成回滚语句于一身的MySQL自动化运维工具,由去哪网开源 安装 CentOS 7 Python 3.6 安装基础环境 yum -y install cmake libncur ...

  9. Ubuntu18.04 安装 VMwareTools

    VMwareTools作用: 1.增强虚拟显卡和硬盘性能.以及同步虚拟机与主机时钟的驱动程序. 2.可以从物理主机直接往虚拟机里面拖文件. 3.鼠标进入虚拟机后可以直接出来,无需按CTRL+ALT才可 ...

  10. Django--cookie操作

    day74 会话跟踪技术 什么是会话跟踪 我们需要先了解一下什么是会话!可以把会话理解为客户端与服务器之间的一次会晤,在一次会晤中可能会包含多次请求和响应.例如你给10086打个电话,你就是客户端,而 ...