1. 程式人生 > >Thread與Runnable的區別

Thread與Runnable的區別

學過java的都知道,啟動執行緒有兩種方式,Thread與Runnable,本貼來講講兩者的區別

在程式開發中只要是多執行緒肯定永遠以實現Runnable介面為主,因為實現Runnable介面相比繼承Thread類有如下好處:

  • 避免點繼承的侷限,一個類可以繼承多個介面。
  • 適合於資源的共享

以賣票程式為例,通過Thread類完成:

?
1234567891011package org.demo.dff; class MyThread extends Thread{ private int ticket=10; public void run(){ for(int i=0;i<20;i++){ if(this.ticket>0){ System.out.println("賣票:ticket"+this
.ticket--); } } } };

  下面通過三個執行緒物件,同時賣票:

?
123

相關推薦

ThreadRunnable區別

Thread和Runnable區別執行多執行緒操作可以選擇繼承Thread類實現Runnable介面1.繼承Thread類以賣票視窗舉例,一共5張票,由3個視窗進行售賣(3個執行緒)。程式碼:package thread; public class ThreadTest {

多線程——ThreadRunnable區別

over 目標 http 繼承 thread test 啟動 個人 spa 首先,從使用形式上,使用Runnable實現多線程更好,因為避免了單繼承問題,但除了這一點之外,Thread和Runnable之間也存在一些聯系。觀察Thread類的定義形式: public cl

Java多執行緒的實現(程序執行緒的概念、Java繼承Thread類實現多執行緒、Java實現Runnable介面實現多執行緒、ThreadRunnable區別、實現Callable介面實現多執行緒)

1 程序與執行緒 1.1 程序與執行緒的概念 什麼是程序?   程序: 作業系統中一個程式的執行週期。(比如我們想要在電腦上登入QQ,從雙擊qq按鈕---->關閉qq這個過程就是一個程序)   多程序: 同一時刻跑多個程式。   在DOS(磁碟作業系統時

java多執行緒ThreadRunnable區別使用深入理解

首先,多執行緒的實現方式兩種:一種是繼承Thread類,另一種是實現Runnable介面。 那麼這兩種方法的區別何在?該如何選擇? 第一:他們之間的關係 檢視J2EE的API看到 Thread類中:  public class Thread extends Objec

ThreadRunnable區別

學過java的都知道,啟動執行緒有兩種方式,Thread與Runnable,本貼來講講兩者的區別在程式開發中只要是多執行緒肯定永遠以實現Runnable介面為主,因為實現Runnable介面相比繼承Thread類有如下好處:避免點繼承的侷限,一個類可以繼承多個介面。 適合於

ThreadRunnable區別

tool 邏輯 method 自己的 當我 行為 接口實現 線程的創建 多線程 Java中線程的創建有兩種方式: 1. 通過繼承Thread類,重寫Thread的run()方法,將線程運行的邏輯放在其中 2. 通過實現Runnable接口,實例化Thread類

JAVA多線程ThreadRunnable

ext -s ges this @override reads current ride art 一、Runnable   Runnable為一個之包含一個run方法的接口 1 public class MyRunnable implements Runnable{

多線程-ThreadRunnable源碼分析

hat starting cal this oid oev other pri trac Runnable: @FunctionalInterface public interface Runnable { /** * When an object im

Thread Runable區別

Runnable是Thread的介面,在大多數情況下“推薦用介面的方式”生成執行緒,因為介面可以實現多繼承,況且Runnable只有一個run方法,很適合繼承。 Thread本身就是實現了Runable介面 在使用Thread的時候只需要new一個例項出來,呼叫start(

【Java基礎_(執行緒篇_第一篇)】繼承Thread;實現runnable;sleep、wait用法和區別ThreadRunnable區別;執行緒停止

一、執行緒兩種實現 1.繼承Thread類: (1)【直接在主類繼承】 package org; // 繼承 Thread 類 public class TestThreadofExt extends Thread { private static int count =

Java中的 FutureTask的示例Runnable 區別

Java中存在Runnable、Callable、Future、FutureTask這幾個與執行緒相關的類或者介面,在Java中也是比較重要的幾個概念,我們通過下面的簡單示例來了解一下它們的作用於區別。 package demo7; import java.uti

Java執行緒——ThreadRunnable、start()run()

在java中可有兩種方式實現多執行緒,一種是繼承Thread類,一種是實現Runnable介面;Thread類是在java.lang包中定義的。一個類只要繼承了Thread類同時覆寫了本類中的run()方法就可以實現多執行緒操作了,但是一個類只能繼承一個父類,這是此方法的

安卓複習之旅—ThreadRunnable、Callable、Futrue類關係區別

開啟一個執行緒有三種方式定義: Thread、Runnable、Callable,其中Runnable實現的是void run()方法,Callable實現的是 V call()方法,並且可以返回執行結果,其中Runnable可以提交給Thread來包裝下,直

ThreadRunnable介面的區別

    在實際應用中,我們經常用到多執行緒,如車站的售票系統,車站的各個售票口相當於各個執行緒。當我們做這個系統的時候可能會想到兩種方式來實現,繼承Thread類或實現Runnable介面,現在看一下這兩種方式實現的兩種結果。 Java程式碼   package com.threadtest;  

extends Thread implements Runnable區別

1、通過實現Runnable介面建立執行緒 (1).定義一個類實現Runnable介面,重寫介面中的run()方法。在run()方法中加入具體的任務程式碼或處理邏輯。 (2).建立Runnable介面實現類的物件。 (3).建立一個Thread類的物件,需要封

多執行緒相關 ThreadRunnable、Callable、Futrue類關係區別

Java中存在Runnable、Callable、Future、FutureTask這幾個與執行緒相關的類或者介面,在Java中也是比較重要的幾個概念,我們通過下面的簡單示例來了解一下它們的作用於區別。 Runnable 其中Runnable應該是我們最熟悉的介面,它只有一

RunnableCallable區別

exit getname 可用 clas java get() class try fin Callable接口: public interface Callable<V> { V call() throws Exception; } Runnab

並發編程之多線程基礎-ThreadRunnable區別及聯系(二)

共享 聯系 star 沒有 static unable end 需要 read 上篇文章講述了創建線程的常用方式 本篇主要分析一下Thread和Runnable兩種方式創建線程的區別及聯系 聯系: ?Thread類實現了Runable接口。 ?都需要重寫裏面Run方

java 多執行緒學習(Java中ThreadRunnable區別

今天剛學習java多執行緒 在網上查了幾篇博文學習,個人覺得寫的不錯,但是有的地方有個疑問:Java中Thread 和 Runnable的區別。 然後,在網上查詢相關資料,發現幾乎都是一樣的。 下面貼出相關的程式碼: 如果一個類繼承Thread,則不適合資源共享。但是如果實現了

ThreadRunnable區別和聯絡、多次start一個執行緒會怎麼樣

一、Java有兩種方式實現多執行緒,第一個是繼承Thread類,第二個是實現Runnable介面。他們之間的聯絡:     1、Thread類實現了Runable介面。   2、都需要重寫裡面Run方法。 二、實現Runnable介面相對於繼承Thread類來說,有如下顯著的好處: