线程的概念:一个线程是进程的顺序执行流;

同类的多个线程共享一块内存空间和一组系统资源,线程本身有一个供程序执行时的堆栈。线程在切换时负荷小,因此,线程也被称为轻负荷进程。一个进程中可以有多个线程。

  进程与线程的区别:

线程的划分程度小于进程,使得多线程程序并发性高。

进程在执行过程中有独立的内存单元,而多个线程共享内存,极大的提高了程序的运行效率。

执行过程中两者的区别在于:每个独立的线程有一个程序运行的入口、顺序执行序列、和程序的出口。

线程不能够独立执行,必须依存在应用程序中,由应用程序提供多个线程执行控制。

从逻辑角度来看:多线程的意义在于在一个应用程序中,有多个执行部分可以同时执行,但操作系统并没有将多个线程看作多个独立的应用来实现进程的调度和管理以及资源分配。

  线程的创建与使用:

创建线程方式: 1.可以通过继承Thread类来创建线程

      2.可以通过实现runnable接口来创建线程

      3.匿名内部类的方式

1

*class MyThread01 extends Thread{
*public void run(){                  //这个方法的方法体就是线程要干的事情,下同
*}

*}

2

*class MyThread02 implements Runnable{
* @Override
* public void run() {              //必须重写继承的接口中的抽象方法
*  // TODO Auto-generated method stub
* }
3
*Thread t3=new Thread(){
* public void run(){

*  }
*};   
运行线程:
1:
*Thread t1=new MyThread01();
*t1.start();
2:
*Runnable t2=new MyThread03();
*t2.start();
3:
*t3.start();
线程的优先级与设置线程的优先级:
 setPriority(int i):分为十个级别(1-10),1最高,10最低;级别越高,获取时间片的概率越大。
1:t1.setPriority(i);
2:t2.setPriority(i);
3:t3.setPriority(i)
守护线程与设置守护线程:
守护线程在本质上与普通线程没有区别,只需通过Thread提供的方法来设置即可:
void setDaemon(boolean)  当参数为true时该线程为守护线程
守护线程的特点:
当进程中只剩下守护线程时,所有守护线程强制终止。
sleep(long ms)方法:
使当前的线程进入阻塞状态,持续ms毫秒,之后线程会进入Runnable状态,等待重新分配时间片。
该方法需要抛出一个异常,所以需要用try{}catch(){}捕获这个异常。
 
 

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

  1. Java学习笔记 线程池使用及详解

    有点笨,参考了好几篇大佬们写的文章才整理出来的笔记.... 字面意思上解释,线程池就是装有线程的池,我们可以把要执行的多线程交给线程池来处理,和连接池的概念一样,通过维护一定数量的线程池来达到多个线程 ...

  2. Java 学习笔记 线程控制

    题目一 本质上来说,线程是不可控制的,线程的执行是由CPU资源分配决定的,我们无法干预系统CPU的资源分配,但我们可以增加条件来让线程按照我们的预想顺序来执行. 比如.如果当前的执行的线程不满足我们所 ...

  3. java学习笔记 - 线程池(一)

    线程池(Thread Pool):把一个或多个线程通过统一的方式进行调度和重复使用的技术,避免了因为线程过多而带来使用上的开销 优点:(面试题)可重复使用已有线程,避免对象创建.消亡和过度切换的性能开 ...

  4. java学习笔记 线程的实现与同步

    2019.4.2 线程实现的两种方式 继承线程,复写其中的run方法 实现runnable接口,复写run方法 使用: MyThread target = new MyThread(); new Th ...

  5. Java学习笔记——线程

    线程: 定义:线程是程序内的一个单一的顺序控制流程,也被称为“轻型进程(lightweight process)” 或“执行上下文(execution context )” 线程用于分隔任务 线程类似 ...

  6. Java学习笔记-多线程-创建线程的方式

    创建线程 创建线程的方式: 继承java.lang.Thread 实现java.lang.Runnable接口 所有的线程对象都是Thead及其子类的实例 每个线程完成一定的任务,其实就是一段顺序执行 ...

  7. java学习笔记15--多线程编程基础2

    本文地址:http://www.cnblogs.com/archimedes/p/java-study-note15.html,转载请注明源地址. 线程的生命周期 1.线程的生命周期 线程从产生到消亡 ...

  8. java学习笔记14--多线程编程基础1

    本文地址:http://www.cnblogs.com/archimedes/p/java-study-note14.html,转载请注明源地址. 多线程编程基础 多进程 一个独立程序的每一次运行称为 ...

  9. 0037 Java学习笔记-多线程-同步代码块、同步方法、同步锁

    什么是同步 在上一篇0036 Java学习笔记-多线程-创建线程的三种方式示例代码中,实现Runnable创建多条线程,输出中的结果中会有错误,比如一张票卖了两次,有的票没卖的情况,因为线程对象被多条 ...

随机推荐

  1. Thymeleaf语法

    Thymeleaf 官网:https://www.thymeleaf.org/ 1.入门示例 (1)在controller编写一个请求,放进去一些数据: @RequestMapping("/ ...

  2. luogu P2640 神秘磁石

    题目描述 1.若给他一个一维坐标系,那么他的磁力一定要在素数坐标的位置上才能发挥的最大(不管位置坐标的大小,只要是素数那么磁力就一样大) 2.若两个磁石相距为k,那么磁石间的破坏力将会达到当前磁力的峰 ...

  3. k8s 开船记-触礁:四涡轮发动机撞坏3个引发502故障

    (图片来自网络) 非常抱歉,这次开船触礁故障给您带来麻烦了,请您谅解. 在我们昨天发布 k8s 开船记首航博文后,有园友在评论中发来贺词——“泰坦尼克号出发了[狗头]”,借此吉言,今天船就触礁了,还好 ...

  4. cf448D Multiplication Table 二分

    题目:http://codeforces.com/problemset/problem/448/D 题意:给出n,m,k,即在一个n*m的二维数组中找第k大的数,第i行第j列的数的值为i*j. 思路: ...

  5. POJ2528---Mayor's posters

    The citizens of Bytetown, AB, could not stand that the candidates in the mayoral election campaign h ...

  6. MooseFS 分布式存储

    一.MooseFS介绍 MooseFS主要由管理服务器(master).元日志服务器(Metalogger).数据存储服务器(chunkserver)构成. 管理服务器:主要作用是管理数据存储服务器, ...

  7. Python利用PyExecJS库执行JS函数

      在Web渗透流程的暴力登录场景和爬虫抓取场景中,经常会遇到一些登录表单用DES之类的加密方式来加密参数,也就是说,你不搞定这些前端加密,你的编写的脚本是不可能Login成功的.针对这个问题,现在有 ...

  8. 大数据学习笔记——Spark工作机制以及API详解

    Spark工作机制以及API详解 本篇文章将会承接上篇关于如何部署Spark分布式集群的博客,会先对RDD编程中常见的API进行一个整理,接着再结合源代码以及注释详细地解读spark的作业提交流程,调 ...

  9. c语言输入矩阵的对角线之和

    一.程序代码如下 #include<stdio.h> #define M 4 main() { int matrix[][M]={ {1,2,4,5},{2,6,6,7},{8,7,6,5 ...

  10. 在 ASP.NET Core 中使用 FluentValidation 进行验证

    目录 从 NuGet 安装 FluentValidation 争对 Resource类 建立 FluentValidation 在Startup中对写好的验证进行注册 从 NuGet 安装 Fluen ...