Różnice

Różnice między wybraną wersją a wersją aktualną.

Odnośnik do tego porównania

Both sides previous revision Poprzednia wersja
Nowa wersja
Poprzednia wersja
pl:hexor:hexor_prolog_mt [2007/11/19 18:23]
127.0.0.1 (old revision restored)
pl:hexor:hexor_prolog_mt [2007/11/28 16:36]
root Document moved from pl:hexor_prolog_mt
Linia 1: Linia 1:
-====== Programy wielowątkowe w Prologu ====== 
  
-FIXME gdzie to trzeba zapisac? w jakim pliku? ​ 
- 
-Uruchomienie dodatkowego wątku w prologu polega na wywołaniu pl_call z osobnego wątku stworzonego w języku C.  
- 
-===== Instrukcja ===== 
- 
-W celu dodania wątku do programu należy: 
-  - dopisać funkcję wątku np. 
-  ​ 
-  void * thread (void *unused) 
-  { 
-     // tu kod wątku 
-  } 
- 
-  - dodać zmienną wątku ''​pthread_t t;''​ 
-  - uruchomić wątek ''​pthread_create (&t, NULL, thread, NULL);''​ 
-       * pierwszy argument to adres struktury ''​pthread_t''​ 
-       * trzeci to funkcja wątku 
-       * pozostałe ''​NULL''​ 
-       * szczegóły min. na [[http://​en.wikipedia.org/​wiki/​POSIX_Threads]] 
-  - poczekać na zakończenie wątku ''​pthread_join (t, NULL);''​ 
-       * pierwszy argument to struktura ''​pthread_t''​ 
-       * drugi ''​NULL''​ 
-  - jeśli wątek ma uruchamiać kod w prologu jego funkcja powinna zawierać następujące elementy: 
-       ​* ​ wywołanie ''​pl_attach_engine ()''​ - podpięcie się do interpretera prologu 
-       ​* ​ wywołanie ''​pl_call ("​runme",​ NULL)''​ - wywołanie predykatu ''​runme''​ 
-       ​* ​ wywołanie ''​pl_detach_engine ()''​ - odłączenie od interpretera 
- 
-       void *thread1 (void *unused) 
-       { 
-         ​pl_attach_engine (); 
-         ​pl_call ("​runme",​ NULL); 
-         ​pl_detach_engine (); 
-         ​return (NULL); 
-       } 
- 
- 
- 
- 
- 
- 
-  
pl/hexor/hexor_prolog_mt.txt · ostatnio zmienione: 2019/06/27 15:50 (edycja zewnętrzna)
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0