Aktív témák

  • clayman

    aktív tag

    válasz domain #1 üzenetére

    Gondolom nem kívánod megoldani több szálon, minden iterációnál egy szemaforral, és nem is egymásba ágyazott ciklusra gondoltál így marad a következő megoldás:

    Ha volt:


    const int L1 = 666;
    const int L2 = 1337;
    for(int a=0;a<L1;++a) { első ciklus kódja }
    for(int b=0;b<L2;++b) { második ciklus kódja }


    Ezekből lesz:

    if( L1<=L2) {
    int a, b;
    for(a=0,b=0;a<L1;++a,++b) { összes cikluskód }
    for(;b<L2;++b) { második ciklus kódja }
    } else {
    int a, b;
    for(a=0,b=0;b<L2;++a,++b) { összes cikluskód }
    for(;a<L1;++a) { az első ciklus kódja }
    }


    Vagy ha úgy jobban tetszik:


    int a, b;
    for(a=0,b=0;a<L1 && b<L2;++a,++b) { összes cikluskód }
    for(;a<L1;++a) { az első ciklus kódja }
    for(;b<L2;++b) { második ciklus kódja }


    Persze ha L1 == L2 akkor sokkal 1xűbb:

    for(int a=0,b=0;a<L1;++a,++b) { összes cikluskód }

Aktív témák