究極難題 :一個執行10秒以上至無窮的呼叫函式,成功後有返回值。在多工執行緒中怎麼實現呼叫不卡住該執行緒?
究極難題 :一個執行10秒以上至無窮的呼叫函式,成功後有返回值。在多工執行緒中怎麼實現呼叫不卡住該執行緒?
Note:一旦呼叫函式,中途無法取消。
思路一:讓其執行在獨立執行緒內。加超時時間。
1. 在超時時間內函式有返回值,則函式執行結束。則獨立執行緒結束。
2. 在超時時間內函式沒有返回值,則讓函式跑飛,不在管理。同樣獨立執行緒結束。
結論:呼叫函式,設計不合理。
函式整改規範,window下:
- 一個函式的執行時間不能超出1ms。
- 函式若定義有返回的,必須在1ms內,給與返回值。
- 超出1ms執行時間的函式,當修改為一個長處理任務。
長處理任務 規範:
- 必須實現任務可取消。
- 必須自帶超時時間。
- 異常資訊,必須可以傳出。
相關推薦
究極難題 :一個執行10秒以上至無窮的呼叫函式,成功後有返回值。在多工執行緒中怎麼實現呼叫不卡住該執行緒?
究極難題 :一個執行10秒以上至無窮的呼叫函式,成功後有返回值。在多工執行緒中怎麼實現呼叫不卡住該執行緒? Note:一旦呼叫函式,中途無法取消。 思路一:讓其執行在獨立執行緒內。加超時時間。 1. 在超時時間內函式有返回值,則函式執行結束。則獨立執行緒結束。 2. 在超時時
多執行緒中的佇列不一定需要執行緒安全
兩個執行緒,主執行緒中update update(){ while(queue.count >0){ //process.... queue.pop() } } 子執行緒中: queue.enqueue(data) 這樣做是沒有問
有返回值的多執行緒示例
問題場景 近期遇到用多執行緒優化程式,但是必須帶有返回值,實現Runnable介面不可行,檢視API,可以用Callable介面,試舉一例。 package thread; import java
編寫一個程式,獲取10個1至20的隨機數,要求隨機數不能重複(HashSet實現)
廢話不多說,直接上程式碼。 package cn.ketang.lianxi02; import java.util.HashSet; import java.util.Random; /** *
《java入門第一季》之HashSet小案例:獲取10個1至20的隨機數,要求隨機數不能重複
這是基於HashSet集合的唯一性。 /* * 編寫一個程式,獲取10個1至20的隨機數,要求隨機數不能重複。 * * 分析: * A:建立隨機數物件 * B:建立一個HashSet集合
關於android內建微信瀏覽器,10秒自動重複提交的大坑,簡單出爆,幹掉他
先說說這個機制問題,10秒超時,微信瀏覽器會自動使用代理進行提交,並且會打斷第一次提交,如果你是訂單的話,你就只能呵呵了。 我就是有個功能,上傳一堆的附件到oss去,結果超過10s了,你會發現時間越來越久,原來微信給你再次提交,訂單直接報id錯誤。 移動端的ie6,不想說什
輸入一個正數x和一個正整數n,求下列算式的值。要求定義兩個調用函數:fact(n)計算n的階乘;mypow(x,n)計算x的n次冪(即xn),兩個函數的返回值類型是double
返回值 %d time data body 一個 pow color printf 題目描述 輸入一個正數x和一個正整數n,求下列算式的值。要求定義兩個調用函數:fact(n)計算n的階乘;mypow(x,n)計算x的n次冪(即xn),兩個函數的返回值類型是d
實驗五:任意輸入10個int類型數據,排序輸出,再找出素數
ava 技術分享 () static int 有一點 println 簡單 i++ 實驗程序如下: public class shuzu { public static void main(String[] args) { int a[]= {11,22,5,9
實驗五:任意輸入10個int類型數據,排序輸出,並找出素數
tostring 改變 num bre 組類型 輸入 ray system.in tint 源代碼: package 數組;import java.util.*;public class vvv { public static void main(String[] arg
python執行系統命令後獲取返回值
這就是 () err div log system clas pri 命令 import os, subprocess# os.system(‘dir‘) #執行系統命令,沒有獲取返回值,windows下中文亂碼# result = os.popen(‘dir‘)
判斷一個可滾動元素是否滾動到了底部,將源對象合並到目標對象中去,判斷是否為字符串
docs == ret 字符 xtend body for 目標 tom function isScrollToBottom(e, fn) { // e.srcElement存在兼容性問題,並非標準特性 // https://developer.mozil
一個尖括號能幹什麽,畫一個笑臉開始(為了支持交互,它又增添了JavaScript。HTML頁面也越來越臃腫。於是CSS便誕生了。API和核心代碼的出現使HTML能夠訪問更復雜的軟件功能--支持更高級的交互和雲服務集成。這就是今天的HTML5)
重要 htm 服務 廠商 inf web運行 ima 用戶 界面 一個尖括號 < 一個尖括號能幹什麽 < ? 你可以編出一頂帽子 <(:-p 或一張笑臉 :-> 再或者更直接一些 20世紀90年代初,html作為一種簡單標記語言面
XLua與CSharp互動的採坑點 : 熱修復有返回值的CSharp方法
1、假如CS的一個類中有如下邏輯: 1 using System.Collections; 2 using System.Collections.Generic; 3 using UnityEngine; 4 using XLua; 5 6 namespace LGSTEST
java執行緒池(有返回值和無返回值)
無返回值: package ThreadPool2; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; public class test { public stat
呼叫函式,求1!+2!+3!+......+10!
Description 編寫一個求n!的函式,主函式中呼叫這個函式,計算sum=1!+2!+3!+…+10! Input 無 Output 輸出1!+2!+3!+…+10! Sample Input 無 Sample Output 4037913.000000 #include<s
倪光南院士:我國網路資訊領域優勢與短板並存,國產化替代有五大趨勢
“在引進高新技術上不能抱任何幻想,應當清醒地認識到:關鍵核心技術是要不來、買不了、討不來的,大國重器一定要掌握在自己手裡。”27日上午,中國科學院計算技術研究所研究員、中國工程院院士倪光南在“安全可靠的雲端計算關鍵技術產業發展研討會”上作主題發言時表示。 在研討會上,倪光南認為,核心技術受制於人
Python:列表中按某一列作為索引查詢其他列表中對應資訊,找到後插入當前列表。
直接複製,修改地址後使用。修改三個位置,如備註。 #coding=utf-8 import os.path import numpy as np if __name__=="__main__": list_1_txt= open('list1.txt')#這裡,讀取第一個列表 &
pandas DataFrame高效程式設計方法: 根據多列的值做判斷,生成新的列值,其中多列的值是包含多個值的資料型別
一.遇到的問題描述: 我遇到問題的資料比較複雜,下面以比較簡單的資料為例說明問題,所以這些資料的含義是沒有意義的,可以忽略資料的的具體意義。資料如下所示: import numpy as np import pandas as pd data = {'city': [{'Beijing':1
sqlalchemy:列user_vid去重,取id最大值。
表Charts 如表Charts,value值隨id增加會變化,我們要取出每個使用者最新的value值。 id value user_vid(使用者id,唯一) user_name
讓多執行緒有返回值
Runnable,該介面的run方法並無返回值。而Callable的call方法可以根據你傳入的泛型引數返回對應型別的資料。 public class TaskCallable implements Callable<String>{ private