2019独角兽企业重金招聘Python工程师标准>>>

我们现在使用的操作系统都是多任务操作系统,每个运行的任务就是操作系统所做的一件事情,比如我们在和别人聊QQ时还可以一边听着歌,一般来说一个任务对应着一个进程,也有可能包含多个进程。

线程是进程中的实体,一个进程可以拥有多个线程,一个线程必须有一个父进程。线程不拥有系统资源,只有运行必须的一些数据结构;它与父进程的其它线程共享该进程所拥有的全部资源。进程可以创建和撤消线程,从而实现程序的并发执行。一般,线程具有就绪、阻塞和运行三种基本状态。多线程的目的是为了最大限度的利用CPU资源。

同一进程的里多个子线程看似可以同步进行,其实不是同步的(由于CPU在同一时间内只能处理一个线程),他们可以访问父线程的资源与对象,这样一来的优点是可以实现子线程与子线程之间的通信并且可以节省内存空间,不必为每个子线程重新分配内存空间。但缺点是容易使得数据混乱,线程不安全。

java线程的创建与启动

一、线程创建的方法

1、扩展java.lang.Thread类。

2、实现java.lang.Runnable接口。

二、启动进程

调用start()方法。

在调用start()方法之前:线程处于新状态中,新状态指有一个Thread对象,但还没有一个真正的线程。

在调用start()方法之后:

启动新的执行线程(具有新的调用栈);

该线程从新状态转移到可运行状态;

当该线程获得机会执行时,其目标run()方法将运行。

转载于:https://my.oschina.net/u/1466944/blog/207260

java多线程编程一之java线程的原理相关推荐

  1. Java多线程编程-(4)-线程间通信机制的介绍与使用

    上一篇: Java多线程编程-(1)-线程安全和锁Synchronized概念 Java多线程编程-(2)-可重入锁以及Synchronized的其他基本特性 Java多线程编程-(3)-线程本地Th ...

  2. java线程带来的异常,java多线程练习之捕获子线程异常例子

    本文章给大家介绍java多线程练习之捕获子线程异常一个实例,希望对大家会有所帮助. java多线程程序中,所有线程都不允许抛出未捕获的checked exception,也就是说各个线程需要自己把自己 ...

  3. Java多线程系列(三):Java线程池的使用方式,及核心运行原理

    之前谈过多线程相关的4种常用Java线程锁的特点,性能比较.使用场景,今天主要分享线程池相关的内容,这些都是属于Java面试的必考点. 为什么需要线程池 java中为了提高并发度,可以使用多线程共同执 ...

  4. Java多线程学习(八)线程池与Executor 框架

    历史优质文章推荐: Java并发编程指南专栏 分布式系统的经典基础理论 可能是最漂亮的Spring事务管理详解 面试中关于Java虚拟机(jvm)的问题看这篇就够了 目录: [TOC] 本节思维导图: ...

  5. java并发编程之4——Java锁分解锁分段技术

    转载自 java并发编程之4--Java锁分解锁分段技术 并发编程的所有问题,最后都转换成了,"有状态bean"的状态的同步与互斥修改问题.而最后提出的解决"有状态bea ...

  6. Java多线程系列(七):并发容器的原理,7大并发容器详解、及使用场景

    之前谈过高并发编程系列: 高并发编程系列:4种常用Java线程锁的特点,性能比较.使用场景 高并发编程系列:CountDownLatch.Semaphore等4大并发工具类详解 高并发编程系列:4大J ...

  7. Java多线程系列(八):ConcurrentHashMap的实现原理(JDK1.7和JDK1.8)

    HashMap.CurrentHashMap 的实现原理基本都是BAT面试必考内容,阿里P8架构师谈:深入探讨HashMap的底层结构.原理.扩容机制深入谈过hashmap的实现原理以及在JDK 1. ...

  8. Java 并发编程——Executor框架和线程池原理

    Java 并发编程系列文章 Java 并发基础--线程安全性 Java 并发编程--Callable+Future+FutureTask java 并发编程--Thread 源码重新学习 java并发 ...

  9. Java多线程1:进程与线程概述

    进程和线程 谈到多线程,就得先讲进程和线程的概念. 进程 进程可以理解为受操作系统管理的基本运行单元.360浏览器是一个进程.WPS也是一个进程,正在操作系统中运行的".exe"都 ...

最新文章

  1. ASP.NET图形化的曲线图类
  2. Mapped Statements collection does not contain value for 之运行异常原因
  3. Linux下查杀病毒
  4. 数据中心在未来数据管理中的作用
  5. Di-visible Confusion 贪心,模拟,思维,时间复杂度
  6. scala数据结构之Maps和Tuples
  7. java获取实体类的属性和值
  8. android Handler更新UI
  9. Jupyter修改默认文件保存路径
  10. oracle数据库考试题带答案解析,oracle数据库期末考试试题及答案剖析
  11. 本特利330500-02-00压电速度传感器
  12. 关于HBuilderX背景颜色-粉色
  13. 8 个你不知道的 DOM 功能
  14. 云大使的返利规则是什么
  15. EntityComponentSystemSamples学习笔记
  16. WebRTC[7]-Failed to set remote offer sdp: Called with SDP without DTLS fingerprint
  17. 中国人寿信息技术部实习总结
  18. 明纬电源、航嘉电源真假美猴王 你怎么识别?
  19. 网络运维与管理2013超值精华本
  20. c语言中 float delta,比较float和double值与delta吗?

热门文章

  1. 三个范式的定义与理解
  2. 大型企业网络配置系列课程详解(第一版)发布
  3. centos7系列Cobbler+kickstart全自动装机实战
  4. ARC 101 D - Median of Medians
  5. Centos 7安装gvim
  6. Winform混合式开发框架的特点总结
  7. Redis详解——常用命令总结(完善中)
  8. Exceptions(小节)
  9. Android 应用内启动第三方应用
  10. webpack(1)-简介和基础知识