首页 > 其他分享 > 多线程

多线程

时间:2023-06-16 20:02:32浏览次数:33  
标签:状态 Thread Demo 线程 demo new 多线程

1.进程和线程的定义

进程:引用程序的执行实例(一个应用对应一个进程)

线程:CPU调用和分派的基本单元,进程中执行运算的最小单位

2.创建线程的种类

继承java.lang.Thread类

实现java.lang.Runnable接口

3.继承java.lang.Thread类

(1)定义MyThread类继承Thread类

(2)重写run()方法,编写线程执行体

(3)创建线程对象,调用start()方法启动线程

继承java.lang.Thread类

public clss Demo extends thread{

  public void run(){

for(int i=0;i<100;i++)   

sout(Thread.currentThread().getName()+i) )      }

}                 

 psvm(){

Demo demo=new Demo   

     demo.start}

循环一百次demo线程。如果我要加一个线程就是Demo demo1=new Demo            demo1.start

核心要点:多个线程之间存在交替执行,不是真正的并行;

5.实现runnable接口创建单线程

public class implements Runnable{

public void run(){

for(int i=0;i<100;i++)

{sout(Thread.currentThread.getName()}

}

psvm{Demo.demo=new Demo()

Thread thread=new Thread(demo) 

 thread.start() }

}

6实现多线程runnable接口创建线程

多线程就是加一个

Thread thread1=new Thread(demo) 

thread1.start();

7.线程的状态

1.正常情况下流程:创建状态==》就绪状态==》运行状态==》死亡状态

2.异常情况下流程:创建状态==》就绪状态==》运行状态==》阻塞(休眠)状态==》就绪状态==》运行状态==》死亡状态

8.线程优先级

(1)线程优先级1-10表示,1最低,默认优先级为5;

(2)优先级高的线程获得CPU资源的概率较大;

(3)用thread . setPriority()给线程添加优先级

9.线程休眠

让线程暂时睡眠指定时长,线程进入阻塞状态

Sleep()可以是线程阻塞【休眠】

Thread. sleep(5000)  5000是5s 

 

标签:状态,Thread,Demo,线程,demo,new,多线程
From: https://www.cnblogs.com/liuxin6de1b/p/17486404.html

相关文章

  • web worker进程和线程的区别,Chrome 中有哪些常⻅进程,如果我有⼀个耗时很⻓的同步计算
    进程(Process)和线程(Thread)都是操作系统中用于多任务处理的概念。简单地说,一个进程就是一个程序的执行空间,而一个线程则是在执行空间内独立运行的执行路径。区别:进程是系统分配资源的最小单位,线程是操作系统调度的最小单位。各个进程之间是独立的,各个线程之间共享一些资源。创......
  • c++多线程 std::async std::future
    c++标准库中对线程操作有完善的封装,其中最常用到的如std::thread,std::async。EffectiveModernCpp中指出,应尽量使用std::async即基于任务的编程而非基于线程的编程。std::thread在前面的文章有提到过,此处仅对std::async作以记录。正如前面所说,std::async是基于任务的策略,本人理......
  • Java 多线程同步问题的探究(三、Lock来了,大家都让开【1. 认识重入锁】)
    在上一节中,我们已经了解了Java多线程编程中常用的关键字synchronized,以及与之相关的对象锁机制。这一节中,让我们一起来认识JDK5中新引入的并发框架中的锁机制。我想很多购买了《Java程序员面试宝典》之类图书的朋友一定对下面这个面试题感到非常熟悉:问:请对比synchronized......
  • 多线程
    概念程序:一段静态的代码进程:运行中的程序进程作为资源分配的单位线程:进程进一步细化为线程,是一个程序内部的一条执行路径实现方式继承thread创建一个继承Thread的子类子类中重写父类的run()方法创建子类的对象通过子类对象.start()启动线程实现runable接口创建......
  • Java 多线程同步问题的探究(二、给我一把锁,我能创造一个规矩)
    在上一篇中,我们讲到了多线程是如何处理共享资源的,以及保证他们对资源进行互斥访问所依赖的重要机制:对象锁。本篇中,我们来看一看传统的同步实现方式以及这背后的原理。很多人都知道,在Java多线程编程中,有一个重要的关键字,synchronized。但是很多人看到这个东西会感到困惑:“都说同......
  • Python教程-多线程与多进程
    什么是线程,什么是进程?进程是程序(软件,应用)的一个执行实例,每个运行中的程序,可以同时创建多个进程,但至少要有一个。每个进程都提供执行程序所需的所有资源,都有一个虚拟的地址空间、可执行的代码、操作系统的接口、安全的上下文(记录启动该进程的用户和权限等等)、唯一的进程ID、环境变......
  • Linux C 编程——多线程
    线程是计算机中独立运行的最小单位,运行时占用很少的系统资源。与多进程相比,多进程具有多进程不具备的一些优点,其最重要的是:对于多线程来说,其能够比多进程更加节省资源。1、线程创建在Linux中,新建的线程并不是在原先的进程中,而是系统通过一个系统调用clone()。该系统copy了一个和原......
  • v831-openwrt-c-多线程、队列篇
    前言这几天都在搞多线程和队列,但是最后发现由于v831的单核,用了多线程和队列还不如不用,并且吐槽一下c的线程和队列库,特别队列库很难用。线程库#include<pthread.h>      //系统的多线程文件使用条例:使用的很简单,网上的说明很清楚,不需要详细说明指向感悟很鸡肋......
  • Java多线程与静态方法
    Java多线程与静态方法在多线程中使用静态方法会发生什么事?也就是说多线程访问同一个类的static静态方法会发生什么事?是否会发生线程安全问题? publicclassTest{publicstaticvoidoperation(){//...dosomething}} 事实证明只要在静态函数中没有处理多......
  • C#如何进行多线程编程
    C#如何进行多线程编程由于多线程编程非常复杂,这个小例子只能算是一个入门线的知识点吧首先建一个应用程序项目,命名为ThreadExample,在窗体上放一个文本框(textBox1) ,一个标签(lblResult),再放两个按钮,分别命名为btnStart、btnStop。窗体代码:namespaceThreadExample{......