UNPKG

our-medical

Version:

medical image vue component

51 lines (50 loc) 1.41 kB
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 {};