任何程序在执行时,至少有一个主线程

本文介绍了Thread类中的几个核心方法,包括Start()用于启动线程,Sleep(int)用于暂停当前线程指定的时间,Abort()用于终止线程,Suspend()和Resume()分别用于挂起和恢复线程执行。并通过一个简单的C#示例展示了如何获取和输出当前线程的状态。
摘要由CSDN通过智能技术生成

Thread类有几个至关重要的方法,描述如下:

Start():启动线程;

Sleep(int):静态方法,暂停当前线程指定的毫秒数;

Abort():通常使用该方法来终止一个线程;

Suspend():该方法并不终止未完成的线程,它仅仅挂起线程,以后还可恢复;

Resume():恢复被Suspend()方法挂起的线程的执行。

 

一个直观印象的线程示例:

using System;
using System.Threading;

namespace ThreadTest
{
  
class RunIt
  {
    [STAThread]
    
static void Main(string[] args)
    {
      Thread.CurrentThread.Name
="System Thread";//给当前线程起名为"System Thread"
Console.WriteLine(Thread.CurrentThread.Name+"'Status:"+Thread.CurrentThread.ThreadState);
      Console.ReadLine();
    }
  }
}

输出如下:

System Thread's Status:Running

 

编写一个程序,使用Java的Thread类或者java.util.concurrent包下的ExecutorService和Runnable接口来创建两个并发运行的线程。这里是一个简单的例子: ```java import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; public class MultiThreadExample { public static void main(String[] args) { // 创建一个固定大小的工作线程池 ExecutorService executor = Executors.newFixedThreadPool(2); // 定义两个任务 ThreadTask task1 = new ThreadTask("Thread 1", () -> { for (int i = 0; i < 5; i++) { System.out.println(Thread.currentThread().getName() + ": " + i); try { Thread.sleep(100); // 模拟耗操作 } catch (InterruptedException e) { e.printStackTrace(); } } }); ThreadTask task2 = new ThreadTask("Thread 2", () -> { for (int i = 5; i < 10; i++) { System.out.println(Thread.currentThread().getName() + ": " + i); try { Thread.sleep(100); // 模拟耗操作 } catch (InterruptedException e) { e.printStackTrace(); } } }); // 提交任务到线程池 executor.submit(task1); executor.submit(task2); // 关闭线程池 executor.shutdown(); } static class ThreadTask implements Runnable { private String name; private Runnable worker; public ThreadTask(String name, Runnable worker) { this.name = name; this.worker = worker; } @Override public void run() { System.out.println(name + " started"); worker.run(); // 执行实际的任务 System.out.println(name + " finished"); } } } ``` 在这个例子中,`ThreadTask`类实现了`Runnable`接口,并且每个任务有自己的名字和内部的循环逻辑。当线程启动两个`ThreadTask`实例,它们将并发执行各自的循环。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值