關於多端開發中遇到的一點執行緒問題

2022-02-09 10:18:58 字數 883 閱讀 6675

在開發中我們會遇到很多不可思議的問題!可能前端對於執行緒理解的不是很深入,我先給大家講一下什麼是執行緒。

執行緒是程序內執行**基本單位,那麼程序是什麼呢?指程式被os調入記憶體,分配執行空間,隨時供cpu排程執行,也就是我們電腦所開啟的很多程序,這樣是不是更清楚了呢?(這裡就不深入講了,以後有機會給大家講解一下執行緒與程序的關係,其實我們前端webworker也是html5,新加執行緒的乙個方法。可以了解一下)

最近我們開發乙個簽到打卡功能,我們是基於乙個底層框架,安卓,ios、前端和後端聯調(下面稱ios和安卓為客戶端)都基於這個框架開發,流程是這樣的,如果使用者點選打卡我要調起客戶端外掛程式,獲取地理定位資訊,然後我拿到這個地理位置資訊給後台對比是不是在打卡範圍內,如果在範圍則成功反之不成功。

流程縷清了吧?寫起來特別好寫,請看下面**片段:(其中我們還有判斷是不是多個班次跳轉頁面的流程,這裡就不多說了,我們只說這個遇到的問題)

上面**我紅框圈起來的地方就是我呼叫客戶端外掛程式的方法,下面藍框我做了乙個延時,大家是不是覺得很奇怪?我為什麼要做延時呢?起初我沒有加這個延時,直接呼叫方法,方法就不生效,甚至走都沒有走進去!!,我查了很久,就是不知道怎麼回事,因為這也不存在賦值傳參的問題啊,就算有賦值問題也應該先這個方法在報錯啊?然後就加了乙個延時,結果好使了,之後就問了我們技術總監,技術總監說,可能是呼叫了客戶端外掛程式之後,底層框架新開了乙個執行緒,我的方法kq_qdbtns在主線程,然後用settimeout回歸主線程,從而呼叫到kq_qdbtns的這個方法。

如有不足之處請大家指出,謝謝。

code first demo中遇到的一點問題

首先說明,所謂的簡易code first demo大致就如此鏈結描述的那樣,輕易地可以生成乙個可讀寫的小功能。而且,顯然地,是有資料庫建立和資料訪問過程的。然後遇到一些問題 1.我他麼知道在我本機生成了乙個什麼資料庫,可是這個東西在 mdf c program files microsoft sql...

關於執行緒的一點補充

public class startdead extends thread public static void main string args 不要對處於死亡狀態的執行緒呼叫start 方法,程式只能對新建狀態的執行緒呼叫start 方法 對於新建狀態的執行緒兩次呼叫start 方法也是錯誤的,...

關於多執行緒的一點總結

昨天又在toplanguage上看到一些關於輕量級執行緒的討論,於是對其中很有用的一段話轉過來 記錄下來以供自己日後慢慢研究。下面是由red.gmail.com發表在toplanguage上的 1.process per connection thread per connection 這在連線數不...