Namespaces
Variants

std::experimental::flex_barrier:: flex_barrier

From cppreference.net
explicit flex_barrier ( std:: ptrdiff_t num_threads ) ;
(1) (concurrency TS)
template < class F >
flex_barrier ( std:: ptrdiff_t num_threads, F completion ) ;
(2) (concurrency TS)
flex_barrier ( const flex_barrier & ) = delete ;
(3) (concurrency TS)
1) 다음과 같은 효과를 가집니다: flex_barrier ( num_threads, c ) , 여기서 c Callable 객체로, 호출 시 -1을 반환하고 부수 효과(side effects)가 없습니다.
2) flex_barrier num_threads 개의 참여 스레드에 대해 생성하며, 완료 단계에는 completion 을 사용합니다. 참여 스레드 집합은 동기화 지점에 도착하는 첫 번째 num_threads 개의 스레드로 구성됩니다.
3) 복사 생성자가 삭제됨; flex_barrier 는 복사할 수 없습니다.

매개변수

num_threads - flex_barrier 에 참여하는 스레드의 수; 음수가 아니어야 함
completion - 완료 단계를 제어하는 함수 객체; 인수 없이 호출 가능해야 하며 반환 타입은 std::ptrdiff_t 여야 하고, 호출 시 -1 이상의 값을 반환해야 하며 예외를 던지지 않아야 함
타입 요구사항
-
F CopyConstructible 요구사항을 충족해야 함.

참고 사항

만약 num_threads 가 0이면, 참여 스레드 집합이 비어 있으며, flex_barrier는 오직 파괴만 가능합니다.