배경 작업을 수행하는 병렬 프로세스에 GPars을 사용합니다. 다음 서비스를 사용하여 새 백그라운드 스레드를 시작합니다.Gpars의 스레드 수 제한?
힙 메모리를 절약하려면 어떻게 백그라운드 스레드 수를 제한 할 수 있습니까?
백그라운드 작업을 처리하는 스레드로 구성된 스레드 풀을 어떻게 정의 할 수 있습니까?
import jsr166y.ForkJoinPool class TaskService { private pool = new ForkJoinPool() def executeAsync(args, closure = null) { if(!closure) { closure = args args = null } GParsPool.withExistingPool(pool) { closure.callAsync(args) } } }
이 권리를 얻을 수 있습니까? 서비스는 Singelton이므로 내 앱에 대한 인스턴스는 하나뿐입니다. pool = new ForkJoinPool()은 한 번만 인스턴스화합니까? – confile
pool = new ForkJoinPool (4)을 사용하고 taskService를 호출 할 때. executeAsync (...) 내 애플 리케이션에서 5 번. 이 경우 어떻게됩니까? 5 개의 작업이 4 개의 스레드에서 실행되거나 4 개의 작업이 실행되고 마지막 작업이 차단됩니까? – confile
기본적으로 Grails 서비스는 Singelton입니다 : http://grails.org/doc/latest/guide/services.html – confile