Android/Java 中线程(Thread)的使用
看到 Thread 我們想到的是線程,
在說線程的使用的先簡單的說下線程與進(jìn)程的區(qū)別,這個(gè)面試題遇到的概率比較大,
進(jìn)程:是系統(tǒng)進(jìn)行資源分配的獨(dú)立單元,? ?自己的理解就是 進(jìn)程是程序的一次執(zhí)行過程
線程:是cpu調(diào)度的基本單元,? 自己的理解就是 線程是在進(jìn)程中獨(dú)立運(yùn)行的子任務(wù)
下面說下線程Tread 的使用,一般都是3中啟動(dòng)的方法,
1?繼承Thread類的實(shí)現(xiàn)
public class MyThread extends Thread {@Overridepublic void run() {super.run();// do something}}
啟動(dòng)的方法
MyThread myThread = new MyThread();myThread.start();// 或者new MyThread().start();
如果不想創(chuàng)建一個(gè)類可以直接new Thread;
new Thread(){@Overridepublic void run() {super.run();// do something}}.start();
2?通過實(shí)現(xiàn)runnable接口來實(shí)現(xiàn)
public class RunnableThread implements Runnable {@Overridepublic void run() {// do something}}
啟動(dòng)方法
RunnableThread runnableThread = new RunnableThread();new Thread(runnableThread).start();// 或者new Thread( new RunnableThread()).start();
如果不想創(chuàng)建一個(gè)類可以直接new Thread ;
new Thread(new Runnable() {@Overridepublic void run() {// do something }}).start();
通過Handler 啟動(dòng)線程
private Handler mHandler = new Handler();private Runnable runnable = new Runnable() {@Overridepublic void run() {// do something}};
啟動(dòng)方法
mHandler.post(runnable);
終止線程的方法: 通過標(biāo)記boolean變量
比如定義boolean 變量? ?
private boolean isStart = false;
public class RunnableThread implements Runnable {@Overridepublic void run() {while (!isStart){}}}
?然后我們可以通過boolean 值 來控制線程
最后補(bǔ)充
使用Thread 我們需要注意 lambda 情況的簡寫
比如下面的寫法就是使用到了lambda
new Thread(this::Task).start();
這個(gè)就是線程里面寫了一個(gè)Tast() 方法
下面寫下它們的演化
new Thread(new Runnable() {@Overridepublic void run() {Task();}}).start();
使用lambda 之后就這樣了
new Thread(this::Task).start();
當(dāng)然寫成這樣也是可以的
new Thread(() -> Task()).start();
?
總結(jié)
以上是生活随笔為你收集整理的Android/Java 中线程(Thread)的使用的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 治疗荨麻疹的自血疗法中用的笨海拉明注射液
- 下一篇: Android/Java 单例使用总结