मैं boost.python का उपयोग कर lib अजगर में सी ++ कोड का एक टुकड़ा रैप करने के लिए कोशिश कर रहा हूँ, फिर भी, मुझे पता चला है कि कई उदाहरण एक ही समय में नहीं चल सकता:boost.python समानांतरता का समर्थन नहीं कर रहा है?
कोड (C++):
class Foo{
public:
Foo(){}
void run(){
int seconds = 2;
clock_t endwait;
endwait = clock() + seconds * CLOCKS_PER_SEC ;
while (clock() < endwait) {}
}
};
BOOST_PYTHON_MODULE(run_test)
{
using namespace boost::python;
class_<Foo>("test", init<>())
.def("run", &Foo::run)
;
}
जो CMake (CMake) का उपयोग कर संकलन है:
add_library(run_test SHARED run_test.cpp)
target_link_libraries(run_test boost_python python2.7)
और निम्नलिखित कोड (अजगर) के साथ परीक्षण किया:
class Dos(threading.Thread):
def run(self):
printl('performing DoS attack')
proc = test()
proc.run()
for i in range(5):
t = Dos()
t.start()
आउटपुट इंगित करता है कि कोड बहुत अजीब तरीके से समानांतर है। प्रत्येक धागा केवल 2 सेकंड लेना चाहिए और 4 धागे मेरी quadcore मशीन पर एक साथ चलना चाहिए:
[2011-11-04 13:57:01] performing DoS attack
[2011-11-04 13:57:01] performing DoS attack
[2011-11-04 13:57:05] performing DoS attack
[2011-11-04 13:57:05] performing DoS attack
[2011-11-04 13:57:09] performing DoS attack
आपकी मदद के लिए धन्यवाद!
, यह निश्चित रूप से एक वैध आवेदन की तरह दिखता है ...;) – larsmoa
यदि आपने संकेत दिया कि कौन सा कोड पायथन था और सी ++ था तो यह पढ़ना आसान होगा। मैंने इसे समझ लिया, लेकिन मुझे एक पल लगा। –