FazBrowse GitHub Viewer
|
Trending
|
URL:
|
Home
Tools:
[Download Repo ZIP]
[View Raw Code]
[Original HTTPS Page]
thread/tutorial/factorial3.cpp at develop · boostorg/thread · GitHub
boostorg
thread
Repository navigation
Code
Issues
77
(77)
Pull requests
13
(13)
Actions
Projects
Wiki
Security and quality
Insights
Expand file tree
Breadcrumbs
thread
/
tutorial
/
factorial3.cpp
Copy path
More file actions
More file actions
Latest commit
History
History
History
36 lines (30 loc) · 862 Bytes
Breadcrumbs
thread
/
tutorial
/
factorial3.cpp
Copy path
File metadata and controls
36 lines (30 loc) · 862 Bytes
Raw
Copy raw file
Download raw file
Open symbols panel
Edit and raw actions
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
//
Copyright (C) 2001-2003
//
William E. Kempf
//
//
Distributed under the Boost Software License, Version 1.0. (See accompanying
//
file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
#
include
<
boost/thread/thread.hpp
>
#
include
<
iostream
>
const
int
NUM_CALCS
=
5
;
class
factorial
{
public:
factorial
(
int
x,
int
& res) : x(x), res(res) { }
void
operator
()() { res =
calculate
(x); }
int
result
()
const
{
return
res; }
private:
int
calculate
(
int
x) {
return
x <=
1
?
1
: x *
calculate
(x-
1
); }
private:
int
x;
int
& res;
};
int
main
()
{
int
results[
NUM_CALCS
];
boost::thread_group thrds;
for
(
int
i=
0
; i <
NUM_CALCS
; ++i)
thrds.
create_thread
(
factorial
(i*
10
, results[i]));
thrds.
join_all
();
for
(
int
j=
0
; j <
NUM_CALCS
; ++j)
std::cout << j*
10
<<
"
! =
"
<< results[j] << std::endl;
}
Back
|
FazBrowse Home
|
New Git URL