Home | 简体中文 | 繁体中文 | 杂文 | Github | 知乎专栏 | Facebook | Linkedin | Youtube | 打赏(Donations) | About
知乎专栏

第 18 章 Android 多线程

目录

18.1. Thread
18.1.1. 线程名称
18.1.2. 线程名称
18.1.3. Sleep
18.2. Handler
18.3. HandlerThread
18.3.1. 发送消息
18.3.2. 完整例子
18.3.3. 获取线程名称
18.4. 消息队列
18.4.1. 非阻塞队列 ConcurrentLinkedQueue

18.1. Thread

配置权限

		
    new Thread("画画线程") {
         @Override
         public void run() {
             picture(question);
         }
     }.start();
     
     new Thread("GPT线程") {
         @Override
         public void run() {
             if (question != null) {
                 String sentence = cleaning();
                 chatgpt(sentence);
             }
         }
     }.start();
		
		

		
// 步骤1:创建线程类,继承自Thread类
class MyThread extends Thread{

	// 步骤2:复写run(),内容 = 定义线程行为
    @Override
    public void run(){
    ... // 定义的线程行为
    }
}

// 步骤3:实例化线程类
MyThread mt=new MyThread(“线程名称”);

// 步骤4:通过线程对象控制线程的状态,如 运行、睡眠、挂起  / 停止
// start()开启线程
mt.start();		
		
		

18.1.1. 线程名称

			
Log.d("Thread", "Current thread: " + Thread.currentThread().getName());			
			
			
			
Thread myThread = new Thread(new Runnable() {
    @Override
    public void run() {
        Log.d("Thread", "Running in: " + Thread.currentThread().getName());
    }
}, "MyBackgroundThread"); // 设置线程名称为 "MyBackgroundThread"

myThread.start();			
			
			

18.1.2. 线程名称

			
myThread.setName("MyThread");
			
			

18.1.3. Sleep

			
    try {

        Thread.sleep(10000);

    } catch (InterruptedException e) {

        Log.e("Location", e.getMessage());

    }