线程1-线程常用方法

1、线程方法
1)、start(),启动线程,并进入就绪状态,随时等待执行
2)、run(),重写的方法,开始执行线程
3)、currentThread(),调用当前线程
4)、getName(),获取线程名字
5)、setName(),设置线程名字
6)、yield(),调用此方法的线程,释放当前cpu的执行权,cpu执行别的线程,对象锁会不会释放
7)、join(),在A线程中调用B线程的join方法,A线程暂停执行,执行B线程,直至B线程执行完成,
A线程接着join()方法之后的代码继续执行。
8)、isAlive(),线程是否存活
9)、sleep(l),让当前线程睡眠l毫秒。
10)、wait(),notify(),notifyAll()

package com.thread.test;

class Thread1 extends Thread{
    @Override
    public void run(){
        Thread.currentThread();
        System.out.println(Thread.currentThread().getName());
        for(int i = 1; i <=100 ; i++){
        System.out.println(Thread.currentThread().getName()+"===="+i);
        }
    }
}

/**
 * 线程的主要方法
 *    1、start(),启动线程,并进入就绪状态,随时等待执行
 *    2、run(),重写的方法,开始执行线程
 *    3、currentThread(),调用当前线程
 *    4、getName(),获取线程名字
 *    5、setName(),设置线程名字
 *    6、yield(),调用此方法的线程,释放当前cpu的执行权,cpu执行别的线程,对象锁会不会释放
 *    7、join(),在A线程中调用B线程的join方法,A线程暂停执行,执行B线程,直至B线程执行完成,
 *        A线程接着join()方法之后的代码继续执行。
 *    8、isAlive(),线程是否存活
 *    9、sleep(l),让当前线程睡眠l毫秒。
 */

public class TestThread{
    public static void main(String[] args) {
        Thread.currentThread().setName("主线程");
        Thread1 t1 = new Thread1();
        t1.setName("子线程1");
        t1.start();

        for(int i = 1 ; i<= 100 ; i++){
            System.out.println(Thread.currentThread().getName()+"......"+i);
            if(i % 10 == 0){
                Thread.currentThread();
                Thread.yield();//释放当前cpu
            }
            if(i == 20){
                Thread1 t2 = new Thread1();
                t2.setName("子线程2");
                try {
                    t2.join();
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
            }
        }
    }
}

2、线程优先级
线程调度
(1)时间片策略,同优先级线程,组成先进先出队列,使用时间片策略
(2)抢占式策略,优先级高的先执行

时间: 2024-10-07 05:02:50

线程1-线程常用方法的相关文章

基础学习day12--多线程一线程之间的通信和常用方法

一.线程之间的通信 1.1.线程之间的通信方法 多个线程在处理统一资源,但是任务却不同,这时候就需要线程间通信.    等待/唤醒机制涉及的方法:    1. wait():让线程处于冻结状态,被wait的线程会被存储到线程池中.    2. notify():唤醒线程池中的一个线程(任何一个都有可能).    3. notifyAll():唤醒线程池中的所有线程.  备注    1.这些方法都必须定义在同步中,因为这些方法是用于操作线程状态的方法.    2.必须要明确到底操作的是哪个锁上的线

【Java 语言】Java 多线程 一 ( 线程启动 | 线程中断 )

一. 线程启动 线程启动 : -- 1. 继承 Thread 运行线程 : 重写 Thread 类的 run 方法, 然后执行该线程; -- 2. 实现 Runnable 接口, 并运行线程; -- 代码示例 : package com.hanshuliang.thread; public class ThreadStart { public static void main(String[] args) { //1. 继承 Thread 运行线程 MyThread thread = new M

iOS--多线程之线程间通讯

线程间通讯 一.NSThread 1.简单说明 ①线程间通信:在1个进程中,线程往往不是孤立存在的,多个线程之间需要经常进行通信 ②线程间通信的体现 1个线程传递数据给另1个线程 在1个线程中执行完特定任务后,转到另1个线程继续执行任务 ③线程间通信常用方法 // waitUntilDone的含义: // 如果传入的是YES: 那么会等到主线程中的方法执行完毕, 才会继续执行下面其他行的代码 // 如果传入的是NO: 那么不用等到主线程中的方法执行完毕, 就可以继续执行下面其他行的低吗 /* *

java中的进程,线程,线程池总结

1.线程与进程 进程 狭义上讲:正在执行的程序,由线程组成,可包含多个线程在运行. 广义上讲:进程是一个具有一定独立功能的程序有关于某个数据集合的一次运行的活动.它可以申请或者拥有系统资源,是一个动态的概念. 进程的概念主要两点:1.进程是一个实体,每一个进程都有自己的地址空间,一般情况下包括文本区域,数据区和堆栈. 线程 为进程中执行的程序片段. 一个线程由线程ID,当前指令针,寄存器和堆栈组成,另外线程是进程的实体,是被系统独立调试的分派的基本单元. 线程是程序中一个单一的顺序控制流程.进程

基础学习day11--多线程一线程的创建,运行,同步和锁

1.1.进程和线程 进程:一个应用程序一般都是一个进程,正在进行的程序 每一个进程最少都有一个线程,都有一个执行顺序,该顺序是一个执行路径或者一个控制单元 线程:进程中一个独立的控制单元,线程控制着进程的执行. windows中的任务管理器,可以查看进程,linux下通过ps命令 线程是进程的最小单位 线程依赖于进程 线程随着进程的创建和创建,随着进程的结束而消亡 如迅雷:可以同时开启多个下载,就是多线程 多个程序同时执行,时CPU在很快的切换,看上去是同时执行,实际上是在CPU在切换执行. 多

JAVA并发实现四(守护线程和线程阻塞)

守护线程     Java中有两类线程:User Thread(用户线程).Daemon Thread(守护线程) 用户线程即运行在前台的线程,而守护线程是运行在后台的线程. 守护线程作用是为其他前台线程的运行提供便利服务,而且仅在普通.非守护线程仍然运行时才需要,比如垃圾回收线程就是一个守护线程.当VM检测仅剩一个守护线程,而用户线程都已经退出运行时,VM就会退出,因为没有如果没有了被守护者,也就没有继续运行程序的必要了.如果有非守护线程仍然存活,VM就不会退出. 守护线程并非只有虚拟机内部提

猎豹MFC--进程和线程--创建线程AfxBeginThread() SetDlgItemInt()线程暂停继续终止

增加一按钮  双击: SPY++查看  进程下面的线程: 另一个线程函数: 定义一个指针变量: 在构造函数中初始化: 暂停线程: 线程继续: 定义布尔变量 记录 线程有没有在运行: 初始化该变量: 修改县城函数demoA: 对话框添加按钮,双击该按钮: 增加一个线程函数: 实现线程函数: 增加第2个按钮  掉用第二个线程函数:' 按了第一个按钮立马按第二个按钮时  也就是当两个线程并发执行时就会出错: 以上是线程同步的四种方法,是MFC的C++类 定义指针:指向临界区对象: 在构造函数中 创建临

线程同步--线程间通信

一.线程同步 线程的同步方法跟其他系统下类似,我们可以用原子操作,可以用 mutex,lock 等. iOS 的原子操作函数是以 OSAtomic 开头的,比如:OSAtomicAdd32, OSAtomicOr32 等等.这些函数可以直接使用,因为它 们是原子操作. iOS 中的 mutex 对应的是 NSLock,它遵循 NSLooking 协议,我们可以使用 lock, tryLock, lockBeforeData:来加锁,用 unLock 来解锁.使用示例: BOOL moreToDo

线程和线程池

首先线程有守护线程和用户线程两种,区别就是用户线程是否保持程序的运行状态.当程序在运行时,必定有一个或以上的线程是用户线程,而当程序结束时,所有守护线程也都将被关闭.使用Thread.setDaemon(ture)可以把线程标记为守护线程,默认线程状态继承自创建它的线程.线程的两种创建方法不多说了. 线程安全一般指的是共享变量被多个线程访问读写造成的数据不一致或者是数据不完整性.一般有如下几种方法可供参考: 1.synchronized方法,提供只能供一个线程访问的类,方法或语句块,控制变量的修

.net多线程,线程异步,线程同步,并发问题---1---ShinePans

申请线程,输出线程状态: using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading; using System.Threading.Tasks; namespace 主线程1 { class Program { static void Main(string[] args) { Console.WriteLine("当前的线程状况:&qu