Java基础——线程总结

一、线程是什么?

线程:一个程序里不同的运行路径。

二、怎样创建线程?

两种方法创建线程:

第一种

(1)定义详细功能类实现Runnable接口,能够多次调用而实现数据共享

(2)Thread myThread = new Thread(…)          //參数为Runnable接口类型

(3)Runnable中仅仅有一个方法

      public void run(){……}                           //用以定义线程执行体

另外一种

(1)定义一个Thread的子类并重写run()方法

      class MyThread extends Thread {

      public void run(){……}

      }

(2)生成该类的对象

      MyThread myThread = new MyThread (…)

三、能够对线程做哪些控制?

方法

功能

bool isAlive(myThread Thread)

推断线程是否还“活”着,即线程是否还未终止。

int getPririty()

获得线程的优先级数值

void setPriority(int NewPriority)

设置线程的优先级数值

Thread.sleep(int sleepTime)

指定当前线程的睡眠时间(单位:毫秒)

void join()

将当前线程与上一主线程合并,即A线程的a()方法调用了B线程。则让B线程结束,再恢复A线程继续运行。

void yield()

让出CPU,当前线程进入就绪队列等待调度。

void wait()

当前线程进入对象的wait pool。

void notify()/void notifyAll()

唤醒对象的wait pool中的一个/全部等待线程。

四、辨析wait()与sleep()

之所以对这两个方法辨析,它们有个共同点——暂停线程的运行。但要说起它们的不同点。那还是挺多的。

不同点:

(1)Wait()是Object对象的方法;而Sleep(int sleepTime)是Thead()线程的方法。

(2)Wait()运行后,当前对象的锁就会被释放;而Sleep(int)运行后,锁仍然在其手中。

(3)Wait()不须要指定停留时间,须要notify()方法或notifyAll()方法将其唤醒;而Sleep(int),当中int指定睡眠的毫秒数,仅仅有在超过这个时间后。醒过来,当再次获得时间片之后,才干继续运行。

Java基础——线程总结的更多相关文章

  1. Java基础-线程安全问题汇总

    Java基础-线程安全问题汇总 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.内存泄漏和内存溢出(out of memory)的区别 1>.什么是内存溢出 答:内存溢出指 ...

  2. Java基础-线程操作共享数据的安全问题

    Java基础-线程操作共享数据的安全问题 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.引发线程安全问题 如果有多个线程在同时运行,而这些线程可能会同时运行这段代码.程序每次运 ...

  3. 《Java基础——线程类》

    Java基础--线程类       一.线程的创建之Thread类: 规则: 通过声明一个新类作为子类继承 Thread 类,并复写 run() 方法,就可以启动新线程并执行自己定义的 run()方法 ...

  4. JAVA基础—线程池

    推荐文章java多线程基础 线程池概述 为什么要使用线程池 1.服务器创建和销毁工作线程的开销很大 2.如果频繁的创建和销毁线程会导致频繁的切换线程,因为一个线程被销毁后,必然要把CPU转让给另一个已 ...

  5. java基础—线程(一)

    一.线程的基本概念

  6. java基础—线程(二)

    一.线程的优先级别

  7. Java基础--线程创建方式

    线程的创建主要有两种形式,通过继承Thread或者实现Runnable接口,本质上没有太大区别. /** * @date: 2019/7/16 **/ public class ThreadOne i ...

  8. Java基础-线程与并发1

    线程与并发 Thread 基本概念 程序: 一组计算机能识别和执行的指令 ,是静态的代码. 进程: 程序的一次运行活动, 运行中的程序 . 线程: 进程的组成部分,它代表了一条顺序的执行流. 进程线程 ...

  9. 面试题-Java基础-线程部分

    1.进程和线程的区别是什么? 进程是执行着的应用程序,而线程是进程内部的一个执行序列.一个进程可以有多个线程.线程又叫做轻量级进程. 2.创建线程有几种不同的方式?你喜欢哪一种?为什么? 有三种方式可 ...

随机推荐

  1. Elasticsearch match_phrase用法

    目前有用到的用法如下: post /index_name/_search { "query" : { "match_phrase": { "nickn ...

  2. Codeforces Round #196 (Div. 1) 题解

    (CF唯一不好的地方就是时差……不过还好没去考,考的话就等着滚回Div. 2了……) A - Quiz 裸的贪心,不过要用矩阵乘法优化或者直接推通式然后快速幂.不过本傻叉做的时候脑子一片混乱,导致WA ...

  3. luogu P1047 校门外的树

    题目描述 某校大门外长度为L的马路上有一排树,每两棵相邻的树之间的间隔都是1米.我们可以把马路看成一个数轴,马路的一端在数轴0的位置,另一端在L的位置:数轴上的每个整数点,即0,1,2,……,L,都种 ...

  4. 【状压dp】Most Powerful

    [ZOJ3471]Most Powerful Time Limit: 2 Seconds      Memory Limit: 65536 KB Recently, researchers on Ma ...

  5. 【贪心】 Codeforces Round #419 (Div. 1) A. Karen and Game

    容易发现,删除的顺序不影响答案. 所以可以随便删. 如果行数大于列数,就先删列:否则先删行. #include<cstdio> #include<algorithm> usin ...

  6. 2.1(java编程思想笔记)位移操作

    java位移操作主要有两种: 有符号位移:有符号位移会保留原有数字正负性,即正数依然是正数,负数依然是负数. 有符号位左移时,低位补0. 有符号右移时:当数字为正数,高位补0.当数字为负时高位补1. ...

  7. (转)DLL中导出函数的两种方式(dllexport与.def文件)

    DLL中导出函数的两种方式(dllexport与.def文件)http://www.cnblogs.com/enterBeijingThreetimes/archive/2010/08/04/1792 ...

  8. text-align 属性,输入框数字向右靠

    1.业务需求:金额输入框数字向右靠 2.HTML文件 <td id="otherPay_Td"> <input id="otherPay" t ...

  9. ECCV 2014 Oral Paper

    今年的ECCV 的paper已经挂到了网上.本文整了当中Oral Paper. 一,Tracking and Activity Recognition

  10. 【转载】Instagram架构分析笔记

    原文地址:http://chengxu.org/p/401.html Instagram 架构分析笔记 全部 技术博客 Instagram团队上个月才迎来第 7 名员工,是的,7个人的团队.作为 iP ...