什么是线程?
    可以理解为进程中独立运行的字任务。
 
使用多线程:
    1.继承Thread类:从源码可以看到,Thread累实现了Runnable接口。
        如果多次调用start()方法,会出现异常Exception in thread “main” java.lang.IllegalThreadStateException
    2.实现Runnable接口
    在某些JVM中,i--分为如下三步:
        A.取得原有i值
        B.计算i-1
        C.对i进行赋值
    多线程同时访问,会出现非线程安全问题
    println()方法内部是同步的。
    
    currentThread()方法:可以返回代码正在被哪个线程调用。
    isAlive()方法:判断当前线程是否处于活动状态。
        活动状态:已经启动尚未终止。
    sleep()方法:使当前正在执行的线程休眠指定毫秒数。
        this.currentThread()方法返回的线程。
    getId()方法:获得线程的唯一标识。
 
停止线程:
    Thread.interrupt()方法:停止线程时使用。
        不能马上停止,做停止标记,当前线程的方法执行完以后停止。
    this.interrupted()方法:
        测试当前线程是否是已中断状态,执行完清除状态标志为false
    this.isInterrupted()方法:
         测试当前线程是否是已中断状态,不清除状态标志
    this.stop()方法:
        暴力停止线程,已废弃,不推荐使用。
        会抛出异常,但不需要捕获。
    使用return配合interrupt()也可以停止线程。
    注意:
        建议使用抛异常的方法来终止线程,因为可以在catch代码块中处理异常。
 
    Thread.yieId()方法:
        使当前线程放弃cpu资源,重新分配。
        放弃时间不确定,有可能刚放弃,马上又获得。
    线程的优先级:
        一般来说,优先级较高的线程得到的资源较多。
        setPriority():设置线程优先级。
        Java中优先级分为1~10,10个等级,小于1或者大于10都会抛出异常。
        Jdk中有3个预定义的优先级,1,5,10
 
    优先级的继承性:
        A线程启动b线程,b线程的优先级和a线程是一样的
        
    守护线程:
        守护线程具有陪伴意义,当java中不存在非守护线程,那么守护线程也就销毁了
        垃圾回收线程就是一个守护线程。
        
    synchronized()同步方法:
        非线程安全问题存在于实例变量中,局部变量不存在。
        方法内部的变量是线程私有的。
        当多个线程访问多个对象,jvm会创建多个锁。

Java学习|多线程学习笔记的更多相关文章

  1. java进阶-多线程学习笔记

    多线程学习笔记 1.什么是线程 操作系统中 打开一个程序就是一个进程 一个进程可以创建多个线程 现在系统中 系统调度的最小单元是线程 2.多线程有什么用? 发挥多核CPU的优势 如果使用多线程 将计算 ...

  2. Java基础-多线程学习目录

    1.Java多线程并发编程一览笔录 2.什么时候使用CountDownLatch 3.Java并发学习系列-绪论

  3. C#深入学习 ----多线程学习(一)第一天学习

    学习最好的方法就是总结,并写下来,能让别人看懂,自己肯定是掌握了的. 针对软件开发,一直停留在能做的层次,今天得到大牛指点,觉得有必要对这门技术深入学习. 翻阅园内各大神的文章,收益匪浅,在这里做下总 ...

  4. 【Java】多线程入门

    Java多线程学习(入门) 前言 目前对于线程的了解仅仅停留在学习python的threading库,很多线程的概念没有真正弄清楚,所以选择来系统性的学习多线程.那么这次选择的是Java的多线程学习, ...

  5. java多线程学习笔记——详细

    一.线程类  1.新建状态(New):新创建了一个线程对象.        2.就绪状态(Runnable):线程对象创建后,其他线程调用了该对象的start()方法.该状态的线程位于可运行线程池中, ...

  6. JAVA多线程学习笔记(1)

    JAVA多线程学习笔记(1) 由于笔者使用markdown格式书写,后续copy到blog可能存在格式不美观的问题,本文的.mk文件已经上传到个人的github,会进行同步更新.github传送门 一 ...

  7. Java多线程学习笔记(一)——多线程实现和安全问题

    1. 线程.进程.多线程: 进程是正在执行的程序,线程是进程中的代码执行,多线程就是在一个进程中有多个线程同时执行不同的任务,就像QQ,既可以开视频,又可以同时打字聊天. 2.线程的特点: 1.运行任 ...

  8. Java多线程学习笔记

    进程:正在执行中的程序,其实是应用程序在内存中运行的那片空间.(只负责空间分配) 线程:进程中的一个执行单元,负责进程汇总的程序的运行,一个进程当中至少要有一个线程. 多线程:一个进程中时可以有多个线 ...

  9. java 多线程学习笔记

    这篇文章主要是个人的学习笔记,是以例子来驱动的,加深自己对多线程的理解. 一:实现多线程的两种方法 1.继承Thread class MyThread1 extends Thread{ public ...

随机推荐

  1. 你不得不知的几个互联网ID生成器方案

    服务化.分布式已成为当下系统开发的首选,高并发操作在数据存储时,需要一套id生成器服务,来保证分布式情况下全局唯一性,以确保系统的订单创建.交易支付等场景下数据的唯一性,否则将造成不可估量的损失. 基 ...

  2. Spring IoC控制反转创建实例

    Spring IoC控制反转创建实例写一个配置文件beans.xml,配置文件的约束可以访问:完整链接:https://repo.spring.io/libs-release-local/org/sp ...

  3. HDU5521 Meeting(dijkstra+巧妙建图)

    HDU5521 Meeting 题意: 给你n个点,它们组成了m个团,第i个团内有si个点,且每个团内的点互相之间距离为ti,问如果同时从点1和点n出发,最短耗时多少相遇 很明显题目给出的是个无负环的 ...

  4. python爬取新浪股票数据—绘图【原创分享】

    目标:不做蜡烛图,只用折线图绘图,绘出四条线之间的关系. 注:未使用接口,仅爬虫学习,不做任何违法操作. """ 新浪财经,爬取历史股票数据 ""&q ...

  5. Python趣用—配平化学方程式

    不知不觉已经毕业多年了,不知道大家是否还记得怎么配平化学方程式呢?反正小编我是已经记不太清了,所以今天的文章除了分享如何用python配平化学方程式,顺带着还会复习 一些化学方程式的知识,希望广大化学 ...

  6. 个人永久性免费-Excel催化剂功能第32波-空行空列批量插入和删除

    批量操作永远是效率提升的王道,也是Excel用户们最喜欢能够实现的操作虽说有些批量操作不一定合适Excel的最佳实践操作,但万千世界,无奇不有,特别是在国人眼中领导最大的等级森严的职场环境下.Exce ...

  7. Excel催化剂开源第9波-VSTO开发图片插入功能,图片带事件

    图片插入功能,这个是Excel插件的一大刚需,但目前在VBA接口里开发,如果用Shapes.AddPicture方法插入的图片,没法对其添加事件,且图片插入后需等比例调整纵横比例特别麻烦,特别是对于插 ...

  8. [leetcode] 64. Minimum Path Sum (medium)

    原题 简单动态规划 重点是:grid[i][j] += min(grid[i][j - 1], grid[i - 1][j]); class Solution { public: int minPat ...

  9. 【git】Github上面的开源代码怎么在本地编译运行

    最近才发现Github是一个好东西,可以从上面学到很多东西,不说了,赶快写完去学习去... 1.首先你可以看看这个开源项目的README.md,一般一般这里都会有项目的使用方式以及一些注意的点 2.你 ...

  10. C#的DateTime得到特定日期

    //指定时间 DateTime dt = new DateTime(2016, 6, 1); //当前时间 DateTime dt = DateTime.Now; //本周周一 DateTime st ...