日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > Android >内容正文

Android

Android 中三种启用线程的方法

發(fā)布時(shí)間:2025/3/21 Android 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Android 中三种启用线程的方法 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

多線程就是分時(shí)利用CPU,宏觀上讓所有線程一起執(zhí)行 ,也叫并發(fā)
先調(diào)用start后調(diào)用run

1.start()方法來啟動(dòng)線程,真正實(shí)現(xiàn)了多線程運(yùn)行。 這時(shí)無需等待run方法體代碼執(zhí)行完畢,可以直接繼續(xù)執(zhí)行下面的代碼 通過調(diào)用Thread類的start()方法來啟動(dòng)一個(gè)線程, 這時(shí)此線程是處于就緒狀態(tài), 并沒有運(yùn)行 然后通過此Thread類調(diào)用方法run()來完成其運(yùn)行操作的 這里方法run()稱為線程體,它包含了要執(zhí)行的這個(gè)線程的內(nèi)容 Run方法運(yùn)行結(jié)束, 此線程終止。然后CPU再調(diào)度其它線程 2.run()方法當(dāng)作普通方法的方式調(diào)用 程序還是要順序執(zhí)行,要等待run方法體執(zhí)行完畢后,才可繼續(xù)執(zhí)行下面的代碼 程序中只有主線程——這一個(gè)線程, 其程序執(zhí)行路徑還是只有一條, 這樣就沒有達(dá)到寫線程的目的。

Runnable是一個(gè)接口
Thread是Runnable的子類
HandlerThread就是可以處理消息循環(huán)的線程,是一個(gè)擁有Looper的線程,可以處理消息循環(huán)
Handler是溝通Activity 與Thread/runnable的橋梁。而Handler是運(yùn)行在主UI線程中的,它與子線程可以通過Message對象來傳遞數(shù)據(jù)

1,首先第一種啟用方法是通過繼承Thread類,并改寫run方法來實(shí)現(xiàn)一個(gè)線程
public class MyThread extends Thread { //繼承Thread類,并改寫其run方法 private final static String TAG = "My Thread ===> "; public void run(){ Log.d(TAG, "run"); for(int i = 0; i<100; i++) { Log.e(TAG, Thread.currentThread().getName() + "i = " + i); } } }

調(diào)用啟動(dòng)

new MyThread().start();

運(yùn)行結(jié)果:

11
2,第二種啟用方式創(chuàng)建一個(gè)Runnable對象
public class MyRunnable implements Runnable{ private final static String TAG = "My Runnable ===> "; @Override public void run() { // TODO Auto-generated method stub Log.d(TAG, "run"); for(int i = 0; i<1000; i++) { Log.e(TAG, Thread.currentThread().getName() + "i = " + i); } } }

調(diào)用啟動(dòng)

new Thread(new MyRunnable()).start();

運(yùn)行結(jié)果:

11
3, 第三種啟用方式通過Handler啟動(dòng)線程
public class MainActivity extends Activity { private final static String TAG = "UOfly Android Thread ==>"; private int count = 0; private Handler mHandler = new Handler(); private Runnable mRunnable = new Runnable() { public void run() { Log.e(TAG, Thread.currentThread().getName() + " " + count); count++; setTitle("" + count); // 每3秒執(zhí)行一次 mHandler.postDelayed(mRunnable, 3000); //給自己發(fā)送消息,自運(yùn)行} }; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); // 通過Handler啟動(dòng)線程 mHandler.post(mRunnable); //發(fā)送消息,啟動(dòng)線程運(yùn)行} @Override protected void onDestroy() { //將線程銷毀掉 mHandler.removeCallbacks(mRunnable); super.onDestroy(); } }

總結(jié)

以上是生活随笔為你收集整理的Android 中三种启用线程的方法的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。