두 개의 프로 시저를 동시에 실행하려고합니다. TCL은 통역사이므로 절차를 하나씩 처리합니다. 누군가 TCL에서 멀티 스레딩을 사용할 수있는 예를 설명 할 수 있습니까?TCL에서 멀티 스레딩을 사용하려면 어떻게해야합니까?
답변
요즘 Tcl에서 멀티 스레딩을 수행하는 일반적인 방법은 Tcl의 핵심과 함께 개발되는 Thread
extension —을 사용하는 것이지만 설치할 필요가있는 특정 플랫폼 (예 : 다양한 Linux 기반 OS)에서 사용하는 것입니다. 이 확장 프로그램을 사용할 수있는 별도의 패키지
The threading modelThread
확장 구현은 "인터프리터 당 하나의 스레드"입니다. 즉, 각 스레드는 하나의 Tcl 인터프리터 (및 자식 인터프리터를 무제한으로) "호스트"할 수 있지만 다른 스레드에서 실행되는 코드는 다른 스레드에서 호스트되는 인터프리터에 액세스 할 수 없습니다. 이것은 Tcl의 쓰레드로 작업 할 때 다중 인터프리터라는 개념을 마스터해야한다는 것을 의미합니다.
다른 스레드에서 실행 통역간에 데이터를 교환하는 고전적인 접근 방식은 메시지 전달이다 당신은 다른 스레드에서 실행되는 대상 인터프리터의 입력 큐-스크립트를 게시 한 후 응답을 기다립니다. 반면에 스레드 공유 변수 (잠금에 의한 공유 메모리 구현)도 사용할 수 있습니다. 또 다른 유용한 기능은 스레드 풀을 지원하는 것입니다.
"Tcl and threads" 위키 페이지 Thread
's extension manual pages을 읽으십시오.
코드 예제는 위키에 있습니다. 여기에 단지 one of them입니다.
당신이 생각하는 당신의 절차, parrallel에서 실행해야하는 경우, 는 I/O 바운드 (즉, 그들은 네트워크에서 뭔가를 읽고/또는 뭔가를 보낼 수있다)하지 대부분 유의하시기 바랍니다 CPU- 바운드 (많은 계산 수행)을 사용하면 이벤트 기반 처리 방식을 사용하면 더 나은 결과를 얻을 수 있습니다. Tcl에는 이벤트 루프가 기본적으로 지원되며 다음 청크가 발생하면 Tcl이 코드를 실행할 수 있습니다 데이터를 채널 (예 : 네트워크 소켓)에서 읽거나 채널에 쓸 수 있습니다.
스레드 확장 8.6이 함께 제공됩니다. –
와우, 그런 고풍스러운 언어와 멀티 스레드 통역이 있습니다! :-) 그것으로, 그것은 PHP, perl5, 루비와 파이썬을 압도한다. :-) – peterh
@peterh, curly-bracey는 언어를 불과 10 년 더 간결하게 보여줍니다. BCPL은 1966 년부터 시작되었고 LISP (Tcl은 본질적으로 구문과 중첩 된 중괄호가 없기 때문에 유사합니다)는 1958 년입니다 ([this] 자세한 내용은 https://softwareengineering.stackexchange.com/a/188463). 하지만 우리는 ........ – kostix
- 1. 멀티 스레드 프로그래밍을 사용하려면 어떻게해야합니까?
- 2. backpropagation 신경망 교육에 멀티 스레딩을 적용하려면 어떻게해야합니까?
- 3. PHP5는 멀티 스레딩을 지원합니까?
- 4. DBCP - 멀티 스레딩을 지원합니까?
- 5. NSEnumerationConcurrent가 멀티 스레딩을 보장합니까?
- 6. Webservice에서 멀티 스레딩을 지원합니까?
- 7. Java에서 멀티 스레딩을 어떻게 처리해야합니까?
- 8. PHP에서 멀티 스레딩을 사용하는 방법
- 9. 비동기 프로그래밍은 멀티 스레딩을 의미합니까?
- 10. 멀티 스레딩을 통한 애플리케이션 리던던시
- 11. 콘솔에서 멀티 스레딩을 제어하는 방법
- 12. 멀티 스레딩을 사용하여 합계 계산
- 13. 멀티 스레딩을 사용하는 NSNotification XCODE
- 14. VB.NET은 자체적으로 멀티 스레딩을 수행합니까?
- 15. 멀티 스레딩을 사용하는 Net UDP
- 16. C# 멀티 스레딩을 사용하여 파일을 처리하는 방법
- 17. .net을 사용하여 멀티 스레딩을 배우기에 좋은 소스입니까?
- 18. 스프링 배치에서 멀티 스레딩을 설정하는 방법은 무엇입니까?
- 19. 멀티 스레딩을 사용할 때 메서드를 잠그는 방법?
- 20. Delphi 7 : 멀티 스레딩을 구현하는 방법은 무엇입니까?
- 21. 멀티 스레딩을 사용하여이 코드를 향상시킬 수 있습니까?
- 22. 멀티 스레딩을 위해 라이브러리를 조정하는 C++
- 23. 안드로이드에서 멀티 스레딩을 사용하여 이미지를로드하는 중
- 24. exe에서 멀티 스레딩을 사용하여 문제가 발생했습니다
- 25. 멀티 스레딩을 사용하여 MySQL DB에 연결
- 26. .net에서 멀티 스레딩을 구현하는 다른 방법은 무엇입니까
- 27. 멀티 스레딩을 사용하는 공유 트랜잭션 팁
- 28. Java :이 시나리오에서 멀티 스레딩을 사용해야합니까?
- 29. opengles에서 멀티 스레딩을 사용하여 화면 렌더링
- 30. 멀티 스레딩을 사용하여 GDI + 그래픽 개체 그리기
이 질문에 [이 필수 참조] (http://whathaveyoutried.com)가 묻습니다. – kostix