스레드 C ++를 사용할 때 중복 인쇄

노암 차이

더 큰 프로그램을위한 기본 코드를 작성하려고합니다. 원래 코드는 내 계산 결과를 txt 파일에 작성한다고 가정했지만 여기서는 코드를 단순화하기 위해 숫자 1을 작성하도록 변경했습니다. 문제는 내가 얻을 것이라고 생각하는 수를 얻지 못한다는 것입니다 ... 1000 장의 1 장을 인쇄하면 각각 1 장씩 더 크고 난수를 얻습니다 ...

내 코드의 문제점은 무엇입니까?

(나는 Windows 10, 코드 블록 작업 공간을 사용하고 있으며 C ++로 코드를 작성하고 있습니다)

코드:

    #include <iostream>
    #include <thread>
    #include <vector>
    #include <fstream>
    using namespace std;
    ofstream myfile;
    void doTask()
    {

       myfile << "1\n";
     }

    void f()
    {
        vector<thread> threads;
        for(int i = 0; i < 10; ++i)
        {
            threads.push_back(thread(doTask));
        }

        for(int j=0; j<10; j++) threads[j].join();
        threads.erase(threads.begin(), threads.end());
     }




     int main()
     {
      myfile.open("a.txt");
      for(int i=0; i<100; i++) f();
      myfile.close();
      return 0;
     }

모두 감사합니다!

Sumeet

ofstream 스레드를 안전하게 만드십시오. 다음은 할 것입니다.

#include <iostream>
#include <thread>
#include <vector>
#include <fstream>
#include <mutex>
using namespace std;
ofstream myfile;
std::mutex myMutex;

void doTask()
{
    myMutex.lock();
    myfile << "1\n";
    myMutex.unlock();
}

void f()
{
    vector<thread> threads;
    for(int i = 0; i < 10; ++i)
    {
        threads.push_back(thread(doTask));
    }

    for(int j=0; j<10; j++) threads[j].join();
    threads.erase(threads.begin(), threads.end());
}




int main()
{
    myfile.open("a.txt");
    for(int i=0; i<100; i++) f();
    myfile.close();
    return 0;
}

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

자동 증가 인덱스를 사용할 때 중복 삽입 방지

분류에서Dev

stuff funct는 내부 조인과 함께 사용할 때 중복 레코드를 반환합니다.

분류에서Dev

Tkinter를 사용할 때 스레드에서 루프 중지

분류에서Dev

중첩 루프를 사용할 때 C 프로그래밍 printf가 인쇄되지 않음

분류에서Dev

확장 가능한 레코드를 수정할 때 중복되는 인스턴스

분류에서Dev

C-사용자가 높이를 입력 할 때 #으로 피라미드를 인쇄해야합니다.

분류에서Dev

C sprintf 및 printf를 사용할 때 스레드로부터 안전한 로케일 / 인코딩

분류에서Dev

CRM 2011 C #에서 레코드를 업데이트 할 때 중복 방지

분류에서Dev

foreach를 사용하여 ArrayList를 반복 할 때 스레드 안전성

분류에서Dev

printf를 사용하여 이중 값을 인쇄 할 때 Java UnknownFormatConversionException 발생

분류에서Dev

세마포어 및 스레드를 사용하여 C 인쇄 핑퐁

분류에서Dev

스캐너를 사용할 때 예기치 않은 라인 인쇄

분류에서Dev

C ++ 11 스레드 : 람다를 사용하여 호출 할 때 예외

분류에서Dev

setter를 사용할 때 언제 다중 스레드 싱글 톤에서 정적 인스턴스를 잠 가야합니까?

분류에서Dev

사용자가 중지를 선택할 때 사용자의 승패, 동점 수를 인쇄하는 방법

분류에서Dev

동일한 클래스에서 여러 객체를 인스턴스화 할 때 코드가 실행되지 않지만 동일한 코드를 사용하여 중복 클래스에서 객체를 인스턴스화 할 때 작동합니다.

분류에서Dev

포크를 호출 할 때 스레드가 복사됩니까?

분류에서Dev

cat, tee 및 fifos를 사용하여 다중 스레드 C 프로그램에서 xterm에서 인쇄 및 읽기

분류에서Dev

Plotly 대시 보드를 사용할 때 중복 된 Flask 로그 항목

분류에서Dev

여러 호스트 이름을 통해 실행할 때 ansible을 통해 파일에 중복 값을 인쇄하기 위해 lineinfile 대신 사용할 것

분류에서Dev

C ++ 상속 트리의 일부 클래스에 추가 인터페이스를 도입 할 때 코드 중복 방지

분류에서Dev

변수 복사본을 사용할 때 범위를 벗어난 인덱스

분류에서Dev

데이터베이스에서 오는 이중 필드를 인쇄 할 때 Laravel 문제

분류에서Dev

페이지를 PDF로 인쇄하려고 할 때 헤드리스 Chrome이 중단됨

분류에서Dev

미래, 약속, 분리 된 스레드를 사용할 때 C ++ 오류 C2893, C2780, C2672

분류에서Dev

익명 스레드를 사용하고 홀수 짝수를 두 스레드로 인쇄하려고 할 때 스레드가 교착 상태에 진입했습니다.

분류에서Dev

C #을 사용하여 중복 값을 인쇄 할 필요가 없습니다.

분류에서Dev

스프레드 연산자를 사용할 때 Redux에서 중복을 방지하려면 어떻게해야합니까?

분류에서Dev

스레딩을 사용할 때 백그라운드에서 실행중인 CMD를 닫는 방법은 무엇입니까?

Related 관련 기사

  1. 1

    자동 증가 인덱스를 사용할 때 중복 삽입 방지

  2. 2

    stuff funct는 내부 조인과 함께 사용할 때 중복 레코드를 반환합니다.

  3. 3

    Tkinter를 사용할 때 스레드에서 루프 중지

  4. 4

    중첩 루프를 사용할 때 C 프로그래밍 printf가 인쇄되지 않음

  5. 5

    확장 가능한 레코드를 수정할 때 중복되는 인스턴스

  6. 6

    C-사용자가 높이를 입력 할 때 #으로 피라미드를 인쇄해야합니다.

  7. 7

    C sprintf 및 printf를 사용할 때 스레드로부터 안전한 로케일 / 인코딩

  8. 8

    CRM 2011 C #에서 레코드를 업데이트 할 때 중복 방지

  9. 9

    foreach를 사용하여 ArrayList를 반복 할 때 스레드 안전성

  10. 10

    printf를 사용하여 이중 값을 인쇄 할 때 Java UnknownFormatConversionException 발생

  11. 11

    세마포어 및 스레드를 사용하여 C 인쇄 핑퐁

  12. 12

    스캐너를 사용할 때 예기치 않은 라인 인쇄

  13. 13

    C ++ 11 스레드 : 람다를 사용하여 호출 할 때 예외

  14. 14

    setter를 사용할 때 언제 다중 스레드 싱글 톤에서 정적 인스턴스를 잠 가야합니까?

  15. 15

    사용자가 중지를 선택할 때 사용자의 승패, 동점 수를 인쇄하는 방법

  16. 16

    동일한 클래스에서 여러 객체를 인스턴스화 할 때 코드가 실행되지 않지만 동일한 코드를 사용하여 중복 클래스에서 객체를 인스턴스화 할 때 작동합니다.

  17. 17

    포크를 호출 할 때 스레드가 복사됩니까?

  18. 18

    cat, tee 및 fifos를 사용하여 다중 스레드 C 프로그램에서 xterm에서 인쇄 및 읽기

  19. 19

    Plotly 대시 보드를 사용할 때 중복 된 Flask 로그 항목

  20. 20

    여러 호스트 이름을 통해 실행할 때 ansible을 통해 파일에 중복 값을 인쇄하기 위해 lineinfile 대신 사용할 것

  21. 21

    C ++ 상속 트리의 일부 클래스에 추가 인터페이스를 도입 할 때 코드 중복 방지

  22. 22

    변수 복사본을 사용할 때 범위를 벗어난 인덱스

  23. 23

    데이터베이스에서 오는 이중 필드를 인쇄 할 때 Laravel 문제

  24. 24

    페이지를 PDF로 인쇄하려고 할 때 헤드리스 Chrome이 중단됨

  25. 25

    미래, 약속, 분리 된 스레드를 사용할 때 C ++ 오류 C2893, C2780, C2672

  26. 26

    익명 스레드를 사용하고 홀수 짝수를 두 스레드로 인쇄하려고 할 때 스레드가 교착 상태에 진입했습니다.

  27. 27

    C #을 사용하여 중복 값을 인쇄 할 필요가 없습니다.

  28. 28

    스프레드 연산자를 사용할 때 Redux에서 중복을 방지하려면 어떻게해야합니까?

  29. 29

    스레딩을 사용할 때 백그라운드에서 실행중인 CMD를 닫는 방법은 무엇입니까?

뜨겁다태그

보관