our-medical
Version:
medical image vue component
51 lines (50 loc) • 1.41 kB
TypeScript
type WorkerConstructorParam = (new () => Worker) | {
scriptURL: string | URL;
options?: WorkerOptions | undefined;
};
type Fn = (this: ThreadPool) => void;
/**
* @link https://chat.googlegemini.co/
* @description 线程池,由AI生成大致框架
* @author jiannan.jiao
* @date 02/02/2024
* @export
* @class ThreadPool
*/
export default class ThreadPool {
private maxWorkers;
private taskQueue;
private promises;
private idleWorkers;
private workers;
private WorkerConstructor;
private subscription;
completionWorks: Fn | undefined;
constructor(WorkerConstructor: WorkerConstructorParam, maxWorkers?: number, completionWorks?: Fn);
/**
* @description 添加新任务
* @author jiannan.jiao
* @date 02/02/2024
* @param {*} data
* @returns {*} {Promise<any>}
* @memberof ThreadPool
*/
addTask(data: any): Promise<any>;
addWorker(worker: Worker): void;
/**
* @description 分配任务
* @author jiannan.jiao
* @date 02/02/2024
* @memberof ThreadPool
*/
assignTask(): void;
createWorker(): Worker;
onMessage(event: MessageEvent<any>): void;
onError(event: ErrorEvent): void;
completionWork(idleWorker: Worker): void;
isWorking(): number;
addSubscription(fn: Fn): void;
removeSubscription(fn: Fn): void;
terminateAllWorkers(): void;
}
export {};