Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.c++ > #80262 > unrolled thread

good reference on threads

Started byLynn McGuire <lynnmcguire5@gmail.com>
First post2021-06-10 16:59 -0500
Last post2021-07-27 03:58 +0200
Articles 20 on this page of 22 — 9 participants

Back to article view | Back to comp.lang.c++


Contents

  good reference on threads Lynn McGuire <lynnmcguire5@gmail.com> - 2021-06-10 16:59 -0500
    Re: good reference on threads Öö Tiib <ootiib@hot.ee> - 2021-06-10 15:49 -0700
      Re: good reference on threads Öö Tiib <ootiib@hot.ee> - 2021-06-10 17:58 -0700
      Re: good reference on threads Lynn McGuire <lynnmcguire5@gmail.com> - 2021-06-10 20:31 -0500
        Re: good reference on threads Öö Tiib <ootiib@hot.ee> - 2021-06-10 20:31 -0700
          Re: good reference on threads "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2021-06-10 21:32 -0700
            Re: good reference on threads "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2021-06-10 21:33 -0700
        Re: good reference on threads Ian Collins <ian-news@hotmail.com> - 2021-06-11 20:17 +1200
          Re: good reference on threads Lynn McGuire <lynnmcguire5@gmail.com> - 2021-06-11 14:13 -0500
        Re: good reference on threads Paavo Helde <myfirstname@osa.pri.ee> - 2021-06-11 14:03 +0300
          Re: good reference on threads Paavo Helde <myfirstname@osa.pri.ee> - 2021-06-11 15:19 +0300
          Re: good reference on threads "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2021-06-12 14:41 -0700
    Re: good reference on threads Lynn McGuire <lynnmcguire5@gmail.com> - 2021-06-10 22:03 -0500
      Re: good reference on threads "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2021-06-10 20:08 -0700
        Re: good reference on threads Lynn McGuire <lynnmcguire5@gmail.com> - 2021-07-01 22:27 -0500
          Re: good reference on threads "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2021-07-01 21:28 -0700
          Re: good reference on threads legalize+jeeves@mail.xmission.com (Richard) - 2021-07-27 01:21 +0000
      Re: good reference on threads Cholo Lennon <chololennon@hotmail.com> - 2021-06-12 23:06 -0300
        Re: good reference on threads Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2021-06-12 21:47 -0700
          Re: good reference on threads Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2021-06-12 21:49 -0700
      Re: good reference on threads legalize+jeeves@mail.xmission.com (Richard) - 2021-07-27 01:19 +0000
      Re: good reference on threads Bonita Montero <Bonita.Montero@gmail.com> - 2021-07-27 03:58 +0200

Page 1 of 2  [1] 2  Next page →


#80262 — good reference on threads

FromLynn McGuire <lynnmcguire5@gmail.com>
Date2021-06-10 16:59 -0500
Subjectgood reference on threads
Message-ID<s9u208$94h$2@dont-email.me>
Is there a good reference on threads ?  I would like to delegate the 
writing of our binary file to a background thread if possible.  Our 
Win32 Windows desktop program is mostly MFC with about 450,000 lines of 
C++ code.

I do suspect that this is not doable, due to the nature of the data 
being used for dialogs and such.

Thanks,
Lynn

[toc] | [next] | [standalone]


#80264

FromÖö Tiib <ootiib@hot.ee>
Date2021-06-10 15:49 -0700
Message-ID<cf233b93-519a-4987-ae48-7831b2d55179n@googlegroups.com>
In reply to#80262
On Friday, 11 June 2021 at 00:59:52 UTC+3, Lynn McGuire wrote:
> Is there a good reference on threads ? I would like to delegate the 
> writing of our binary file to a background thread if possible. Our 
> Win32 Windows desktop program is mostly MFC with about 450,000 lines of 
> C++ code. 
> 
> I do suspect that this is not doable, due to the nature of the data 
> being used for dialogs and such. 

Threads can be used in various ways. Making half million lines
code-base  that  is not thread safe to use threads is quite painful
trick to pull. "Not doable" is not what I've met, it is always "what it
will cost". I would maybe study Boost.Asio as it has nice clear
philosophy of how to use threads. Then the question will shift
from "how to make multiple threads to concurrently use same
data?" to "how to make seamless I/O between threads that all
have their own data?".

[toc] | [prev] | [next] | [standalone]


#80266

FromÖö Tiib <ootiib@hot.ee>
Date2021-06-10 17:58 -0700
Message-ID<2d19a12a-38a8-4bdd-bc0d-72cacf2571aan@googlegroups.com>
In reply to#80264
On Friday, 11 June 2021 at 01:49:31 UTC+3, Öö Tiib wrote:
> On Friday, 11 June 2021 at 00:59:52 UTC+3, Lynn McGuire wrote: 
> > Is there a good reference on threads ? I would like to delegate the 
> > writing of our binary file to a background thread if possible. Our 
> > Win32 Windows desktop program is mostly MFC with about 450,000 lines of 
> > C++ code. 
> > 
> > I do suspect that this is not doable, due to the nature of the data 
> > being used for dialogs and such.
> Threads can be used in various ways. Making half million lines 
> code-base that is not thread safe to use threads is quite painful 
> trick to pull. "Not doable" is not what I've met, it is always "what it 
> will cost". I would maybe study Boost.Asio as it has nice clear 
> philosophy of how to use threads. Then the question will shift 
> from "how to make multiple threads to concurrently use same 
> data?" to "how to make seamless I/O between threads that all 
> have their own data?".

Forgot to give link to brief introduction to it:
<https://theboostcpplibraries.com/boost.asio>
It is always viewed as some kind of networking, multiprocessing
and/or RPC tool in books. You can indeed do all that great with it.
For example you can use separate process for writing that binary
file with it. But you can also use just one thread, communicated
with through Boost.Asio without separate process. It is likely
one of safest ways of introducing multithreading into
single-threaded legacy code.

[toc] | [prev] | [next] | [standalone]


#80267

FromLynn McGuire <lynnmcguire5@gmail.com>
Date2021-06-10 20:31 -0500
Message-ID<s9uee1$bk0$1@dont-email.me>
In reply to#80264
On 6/10/2021 5:49 PM, Öö Tiib wrote:
> On Friday, 11 June 2021 at 00:59:52 UTC+3, Lynn McGuire wrote:
>> Is there a good reference on threads ? I would like to delegate the
>> writing of our binary file to a background thread if possible. Our
>> Win32 Windows desktop program is mostly MFC with about 450,000 lines of
>> C++ code.
>>
>> I do suspect that this is not doable, due to the nature of the data
>> being used for dialogs and such.
> 
> Threads can be used in various ways. Making half million lines
> code-base  that  is not thread safe to use threads is quite painful
> trick to pull. "Not doable" is not what I've met, it is always "what it
> will cost". I would maybe study Boost.Asio as it has nice clear
> philosophy of how to use threads. Then the question will shift
> from "how to make multiple threads to concurrently use same
> data?" to "how to make seamless I/O between threads that all
> have their own data?".

I already have threads that have their own data.  I guess that I should 
have mentioned that.

I want multiple threads to share the massive dataset that we use.  Very 
tricky, I have tried sharing data between the threads and it was a disaster.

Lynn

[toc] | [prev] | [next] | [standalone]


#80270

FromÖö Tiib <ootiib@hot.ee>
Date2021-06-10 20:31 -0700
Message-ID<2d59cdde-1d9a-44da-ab7c-c874b6b52706n@googlegroups.com>
In reply to#80267
On Friday, 11 June 2021 at 04:32:04 UTC+3, Lynn McGuire wrote:
> On 6/10/2021 5:49 PM, Öö Tiib wrote: 
> > On Friday, 11 June 2021 at 00:59:52 UTC+3, Lynn McGuire wrote: 
> >> Is there a good reference on threads ? I would like to delegate the 
> >> writing of our binary file to a background thread if possible. Our 
> >> Win32 Windows desktop program is mostly MFC with about 450,000 lines of 
> >> C++ code. 
> >> 
> >> I do suspect that this is not doable, due to the nature of the data 
> >> being used for dialogs and such. 
> > 
> > Threads can be used in various ways. Making half million lines 
> > code-base that is not thread safe to use threads is quite painful 
> > trick to pull. "Not doable" is not what I've met, it is always "what it 
> > will cost". I would maybe study Boost.Asio as it has nice clear 
> > philosophy of how to use threads. Then the question will shift 
> > from "how to make multiple threads to concurrently use same 
> > data?" to "how to make seamless I/O between threads that all 
> > have their own data?".
> I already have threads that have their own data. I guess that I should 
> have mentioned that. 
> 
> I want multiple threads to share the massive dataset that we use. Very 
> tricky, I have tried sharing data between the threads and it was a disaster. 

It is about philosophy what you do. I prefer not to share data. 

Several threads taking their turns to do something with data (X) is
obviously equivalent to just one thread (XMaster) accessing X and
rest of the threads telling to XMaster what they want from X in
asynchronous manner (for that I suggest asio).  

It is easier that way to solve when too lot of work is needed to be
done with  X so work queue of XMaster keeps growing.
XMaster can then split X into parts and delegate managing
of those parts to its own workers. Once all computing power is
occupied and queue full then it is time to buy more hardware.   

And now if you used asio then it is all easy as asio is meant
for networking and RPC and your software has grown into
networking and RPC thanks to more hardware you bought.

[toc] | [prev] | [next] | [standalone]


#80271

From"Chris M. Thomasson" <chris.m.thomasson.1@gmail.com>
Date2021-06-10 21:32 -0700
Message-ID<s9up0m$lob$1@gioia.aioe.org>
In reply to#80270
On 6/10/2021 8:31 PM, Öö Tiib wrote:
> On Friday, 11 June 2021 at 04:32:04 UTC+3, Lynn McGuire wrote:
>> On 6/10/2021 5:49 PM, Öö Tiib wrote:
>>> On Friday, 11 June 2021 at 00:59:52 UTC+3, Lynn McGuire wrote:
[...]
> It is about philosophy what you do. I prefer not to share data.


Only share data when you have to! That is a decent mantra to learn.

[...]

[toc] | [prev] | [next] | [standalone]


#80272

From"Chris M. Thomasson" <chris.m.thomasson.1@gmail.com>
Date2021-06-10 21:33 -0700
Message-ID<s9up3a$lob$2@gioia.aioe.org>
In reply to#80271
On 6/10/2021 9:32 PM, Chris M. Thomasson wrote:
> On 6/10/2021 8:31 PM, Öö Tiib wrote:
>> On Friday, 11 June 2021 at 04:32:04 UTC+3, Lynn McGuire wrote:
>>> On 6/10/2021 5:49 PM, Öö Tiib wrote:
>>>> On Friday, 11 June 2021 at 00:59:52 UTC+3, Lynn McGuire wrote:
> [...]
>> It is about philosophy what you do. I prefer not to share data.
> 
> 
> Only share data when you have to! That is a decent mantra to learn.
> 
> [...]

http://fractallife247.com/test/hmac_cipher/ver_0_0_0_1?ct_hmac_cipher=54795fe0246af4b9532e60e9ac34f9456c16a663dbb5904d2f7806299b9a705d9e21f176ebabf0a96acdfb157bd3e6f59a4343d33915547955ef34c1436db905f4791c8c383d5e020f609ddad25852ee706b93ae145d44a34145e06e758d6c2fbd3cbc502beca8f048d9942e3e2d955126e6df10eb388ac2e1359035183974d9c19939b8748e89b1213b15b774fbb55a13de

[toc] | [prev] | [next] | [standalone]


#80275

FromIan Collins <ian-news@hotmail.com>
Date2021-06-11 20:17 +1200
Message-ID<iigkhbFcj8jU1@mid.individual.net>
In reply to#80267
On 11/06/2021 13:31, Lynn McGuire wrote:
> On 6/10/2021 5:49 PM, Öö Tiib wrote:
>> On Friday, 11 June 2021 at 00:59:52 UTC+3, Lynn McGuire wrote:
>>> Is there a good reference on threads ? I would like to delegate the
>>> writing of our binary file to a background thread if possible. Our
>>> Win32 Windows desktop program is mostly MFC with about 450,000 lines of
>>> C++ code.
>>>
>>> I do suspect that this is not doable, due to the nature of the data
>>> being used for dialogs and such.
>>
>> Threads can be used in various ways. Making half million lines
>> code-base  that  is not thread safe to use threads is quite painful
>> trick to pull. "Not doable" is not what I've met, it is always "what it
>> will cost". I would maybe study Boost.Asio as it has nice clear
>> philosophy of how to use threads. Then the question will shift
>> from "how to make multiple threads to concurrently use same
>> data?" to "how to make seamless I/O between threads that all
>> have their own data?".
> 
> I already have threads that have their own data.  I guess that I should
> have mentioned that.
> 
> I want multiple threads to share the massive dataset that we use.  Very
> tricky, I have tried sharing data between the threads and it was a disaster.

Well it very much depends on whether you have multiple writers.  If you 
have a more readers than writers, std::shared_mutex is worth a look.

-- 
Ian.

[toc] | [prev] | [next] | [standalone]


#80322

FromLynn McGuire <lynnmcguire5@gmail.com>
Date2021-06-11 14:13 -0500
Message-ID<sa0cki$hot$1@dont-email.me>
In reply to#80275
On 6/11/2021 3:17 AM, Ian Collins wrote:
> On 11/06/2021 13:31, Lynn McGuire wrote:
>> On 6/10/2021 5:49 PM, Öö Tiib wrote:
>>> On Friday, 11 June 2021 at 00:59:52 UTC+3, Lynn McGuire wrote:
>>>> Is there a good reference on threads ? I would like to delegate the
>>>> writing of our binary file to a background thread if possible. Our
>>>> Win32 Windows desktop program is mostly MFC with about 450,000 lines of
>>>> C++ code.
>>>>
>>>> I do suspect that this is not doable, due to the nature of the data
>>>> being used for dialogs and such.
>>>
>>> Threads can be used in various ways. Making half million lines
>>> code-base  that  is not thread safe to use threads is quite painful
>>> trick to pull. "Not doable" is not what I've met, it is always "what it
>>> will cost". I would maybe study Boost.Asio as it has nice clear
>>> philosophy of how to use threads. Then the question will shift
>>> from "how to make multiple threads to concurrently use same
>>> data?" to "how to make seamless I/O between threads that all
>>> have their own data?".
>>
>> I already have threads that have their own data.  I guess that I should
>> have mentioned that.
>>
>> I want multiple threads to share the massive dataset that we use.  Very
>> tricky, I have tried sharing data between the threads and it was a 
>> disaster.
> 
> Well it very much depends on whether you have multiple writers.  If you 
> have a more readers than writers, std::shared_mutex is worth a look.

The problem is specifically too many writes slowing the user interface down.

Lynn

[toc] | [prev] | [next] | [standalone]


#80290

FromPaavo Helde <myfirstname@osa.pri.ee>
Date2021-06-11 14:03 +0300
Message-ID<s9vfug$rd8$1@dont-email.me>
In reply to#80267
11.06.2021 04:31 Lynn McGuire kirjutas:
> 
> I want multiple threads to share the massive dataset that we use.  Very 
> tricky, I have tried sharing data between the threads and it was a 
> disaster.

MFC is not thread-safe, so only the main thread can call any MFC functions.

For data exchange the most robust way is to use a couple of message 
queues for passing events back and forth between the threads. Any data 
which is not MT-safe to access should be copied by value into a new 
non-shared object when putting into the queue.

One can easily build such a queue with a std::queue and a std::mutex.

For example, if a background queue wants to display a message to the 
user, it can send an event to the main thread queue containing the 
message. The main thread would check in a MFC OnIdle() function if there 
are any events in the queue, and process them in the main thread.

[toc] | [prev] | [next] | [standalone]


#80307

FromPaavo Helde <myfirstname@osa.pri.ee>
Date2021-06-11 15:19 +0300
Message-ID<s9vkct$r8$2@dont-email.me>
In reply to#80290
11.06.2021 14:03 Paavo Helde kirjutas:
> 11.06.2021 04:31 Lynn McGuire kirjutas:
>>
>> I want multiple threads to share the massive dataset that we use.  
>> Very tricky, I have tried sharing data between the threads and it was 
>> a disaster.
> 
> MFC is not thread-safe, so only the main thread can call any MFC functions.
> 
> For data exchange the most robust way is to use a couple of message 
> queues for passing events back and forth between the threads. Any data 
> which is not MT-safe to access should be copied by value into a new 
> non-shared object when putting into the queue.
> 
> One can easily build such a queue with a std::queue and a std::mutex.

s/std::queue/std::deque/

> For example, if a background queue wants to display a message to the 
> user, it can send an event to the main thread queue containing the 
> message. The main thread would check in a MFC OnIdle() function if there 
> are any events in the queue, and process them in the main thread.
> 

[toc] | [prev] | [next] | [standalone]


#80359

From"Chris M. Thomasson" <chris.m.thomasson.1@gmail.com>
Date2021-06-12 14:41 -0700
Message-ID<sa39m8$mkk$1@dont-email.me>
In reply to#80290
On 6/11/2021 4:03 AM, Paavo Helde wrote:
> 11.06.2021 04:31 Lynn McGuire kirjutas:
>>
>> I want multiple threads to share the massive dataset that we use.  
>> Very tricky, I have tried sharing data between the threads and it was 
>> a disaster.
> 
> MFC is not thread-safe, so only the main thread can call any MFC functions.
> 
> For data exchange the most robust way is to use a couple of message 
> queues for passing events back and forth between the threads. Any data 
> which is not MT-safe to access should be copied by value into a new 
> non-shared object when putting into the queue.
> 
> One can easily build such a queue with a std::queue and a std::mutex.
> 
> For example, if a background queue wants to display a message to the 
> user, it can send an event to the main thread queue containing the 
> message. The main thread would check in a MFC OnIdle() function if there 
> are any events in the queue, and process them in the main thread.
> 

Oh I missed the MFC usage. Actually used it a couple of times in the 
early to mid 90's. Hummm, well, for a multi_producer-to-single_consumer 
relationship, if one can get over a LIFO order, this construction might 
be of use to the OP:

https://groups.google.com/g/comp.lang.c++/c/1gppAtQpIQk/m/XX8-VDoMBgAJ

One can also reverse the LIFO to get a FIFO.

[toc] | [prev] | [next] | [standalone]


#80268

FromLynn McGuire <lynnmcguire5@gmail.com>
Date2021-06-10 22:03 -0500
Message-ID<s9ujq0$dhn$1@dont-email.me>
In reply to#80262
On 6/10/2021 4:59 PM, Lynn McGuire wrote:
> Is there a good reference on threads ?  I would like to delegate the 
> writing of our binary file to a background thread if possible.  Our 
> Win32 Windows desktop program is mostly MFC with about 450,000 lines of 
> C++ code.
> 
> I do suspect that this is not doable, due to the nature of the data 
> being used for dialogs and such.
> 
> Thanks,
> Lynn

I found "C++ Concurrency in Action, 2nd Edition" by Williams, Anthony. 
Has anyone read this and found it to be a good education on threads ?
 
https://www.amazon.com/C-Concurrency-Action-Anthony-Williams/dp/1617294691/

Thanks,
Lynn McGuire


[toc] | [prev] | [next] | [standalone]


#80269

From"Chris M. Thomasson" <chris.m.thomasson.1@gmail.com>
Date2021-06-10 20:08 -0700
Message-ID<s9uk3u$1902$1@gioia.aioe.org>
In reply to#80268
On 6/10/2021 8:03 PM, Lynn McGuire wrote:
> On 6/10/2021 4:59 PM, Lynn McGuire wrote:
>> Is there a good reference on threads ?  I would like to delegate the 
>> writing of our binary file to a background thread if possible.  Our 
>> Win32 Windows desktop program is mostly MFC with about 450,000 lines 
>> of C++ code.
>>
>> I do suspect that this is not doable, due to the nature of the data 
>> being used for dialogs and such.
>>
>> Thanks,
>> Lynn
> 
> I found "C++ Concurrency in Action, 2nd Edition" by Williams, Anthony. 
> Has anyone read this and found it to be a good education on threads ?
> 
> https://www.amazon.com/C-Concurrency-Action-Anthony-Williams/dp/1617294691/

I used to converse with Anthony way back. He knows his threads! :^)

[toc] | [prev] | [next] | [standalone]


#80614

FromLynn McGuire <lynnmcguire5@gmail.com>
Date2021-07-01 22:27 -0500
Message-ID<sbm13f$a1k$1@dont-email.me>
In reply to#80269
On 6/10/2021 10:08 PM, Chris M. Thomasson wrote:
> On 6/10/2021 8:03 PM, Lynn McGuire wrote:
>> On 6/10/2021 4:59 PM, Lynn McGuire wrote:
>>> Is there a good reference on threads ?  I would like to delegate the 
>>> writing of our binary file to a background thread if possible.  Our 
>>> Win32 Windows desktop program is mostly MFC with about 450,000 lines 
>>> of C++ code.
>>>
>>> I do suspect that this is not doable, due to the nature of the data 
>>> being used for dialogs and such.
>>>
>>> Thanks,
>>> Lynn
>>
>> I found "C++ Concurrency in Action, 2nd Edition" by Williams, Anthony. 
>> Has anyone read this and found it to be a good education on threads ?
>>
>> https://www.amazon.com/C-Concurrency-Action-Anthony-Williams/dp/1617294691/ 
>>
> 
> I used to converse with Anthony way back. He knows his threads! :^)

I bought the book.  It looks intense.  Not a very big font either.

Lynn

[toc] | [prev] | [next] | [standalone]


#80615

From"Chris M. Thomasson" <chris.m.thomasson.1@gmail.com>
Date2021-07-01 21:28 -0700
Message-ID<sbm4m2$ohf$1@gioia.aioe.org>
In reply to#80614
On 7/1/2021 8:27 PM, Lynn McGuire wrote:
> On 6/10/2021 10:08 PM, Chris M. Thomasson wrote:
>> On 6/10/2021 8:03 PM, Lynn McGuire wrote:
>>> On 6/10/2021 4:59 PM, Lynn McGuire wrote:
>>>> Is there a good reference on threads ?  I would like to delegate the 
>>>> writing of our binary file to a background thread if possible.  Our 
>>>> Win32 Windows desktop program is mostly MFC with about 450,000 lines 
>>>> of C++ code.
>>>>
>>>> I do suspect that this is not doable, due to the nature of the data 
>>>> being used for dialogs and such.
>>>>
>>>> Thanks,
>>>> Lynn
>>>
>>> I found "C++ Concurrency in Action, 2nd Edition" by Williams, 
>>> Anthony. Has anyone read this and found it to be a good education on 
>>> threads ?
>>>
>>> https://www.amazon.com/C-Concurrency-Action-Anthony-Williams/dp/1617294691/ 
>>>
>>
>> I used to converse with Anthony way back. He knows his threads! :^)
> 
> I bought the book.  It looks intense.  Not a very big font either.

I have not seen his new book, but I am wondering if he mentions how to 
use DWCAS in it with pure C++. I know he knows about it:

actually, read the whole thread where this message resides:

https://groups.google.com/g/lock-free/c/X3fuuXknQF0/m/Ho0H1iJgmrQJ

He calls it DCAS in that thread, buts DCAS and DWCAS are different 
things. So, I am wondering if he mentions it in his 2nd edition.

[toc] | [prev] | [next] | [standalone]


#80742

Fromlegalize+jeeves@mail.xmission.com (Richard)
Date2021-07-27 01:21 +0000
Message-ID<sdnn3f$1sc9$2@news.xmission.com>
In reply to#80614
[Please do not mail me a copy of your followup]

Lynn McGuire <lynnmcguire5@gmail.com> spake the secret code
<sbm13f$a1k$1@dont-email.me> thusly:

>On 6/10/2021 10:08 PM, Chris M. Thomasson wrote:
>> On 6/10/2021 8:03 PM, Lynn McGuire wrote:
>>> On 6/10/2021 4:59 PM, Lynn McGuire wrote:
>>> I found "C++ Concurrency in Action, 2nd Edition" by Williams, Anthony. 
>>> Has anyone read this and found it to be a good education on threads ?
>>>
>>> https://www.amazon.com/C-Concurrency-Action-Anthony-Williams/dp/1617294691/ 
>>>
>> 
>> I used to converse with Anthony way back. He knows his threads! :^)
>
>I bought the book.  It looks intense.  Not a very big font either.

It's organized in such a way that you can dig as deep (or as shallow)
as you like and still come away with a good understanding of what you
need to know.  All my opinion, of course.

Anthony Williams is one of the primary authors of Boost.Threads, from
which we got std::thread.  He also participates heavily in the ISO
standards process.  It is *the* go to book for C++ multithreading and
concurrency.
-- 
"The Direct3D Graphics Pipeline" free book <http://tinyurl.com/d3d-pipeline>
            The Terminals Wiki <http://terminals-wiki.org>
     The Computer Graphics Museum <http://computergraphicsmuseum.org>
  Legalize Adulthood! (my blog) <http://legalizeadulthood.wordpress.com>

[toc] | [prev] | [next] | [standalone]


#80363

FromCholo Lennon <chololennon@hotmail.com>
Date2021-06-12 23:06 -0300
Message-ID<sa3p6j$18om$1@gioia.aioe.org>
In reply to#80268
On 6/11/21 12:03 AM, Lynn McGuire wrote:
> On 6/10/2021 4:59 PM, Lynn McGuire wrote:
>> Is there a good reference on threads ?  I would like to delegate the 
>> writing of our binary file to a background thread if possible.  Our 
>> Win32 Windows desktop program is mostly MFC with about 450,000 lines 
>> of C++ code.
>>
>> I do suspect that this is not doable, due to the nature of the data 
>> being used for dialogs and such.
>>
>> Thanks,
>> Lynn
> 
> I found "C++ Concurrency in Action, 2nd Edition" by Williams, Anthony. 
> Has anyone read this and found it to be a good education on threads ?
> 
> https://www.amazon.com/C-Concurrency-Action-Anthony-Williams/dp/1617294691/
> 

I have the 1st version of that book, it's a very good one on the 
subject. AFAIK it is "the" book about C++ multi-threaded programming.

Regards

--
Cholo Lennon
Bs.As.
ARG

[toc] | [prev] | [next] | [standalone]


#80364

FromKeith Thompson <Keith.S.Thompson+u@gmail.com>
Date2021-06-12 21:47 -0700
Message-ID<875yyiz7z1.fsf@nosuchdomain.example.com>
In reply to#80363
Cholo Lennon <chololennon@hotmail.com> writes:
> On 6/11/21 12:03 AM, Lynn McGuire wrote:
>> On 6/10/2021 4:59 PM, Lynn McGuire wrote:
>>> Is there a good reference on threads ?  I would like to delegate
>>> the writing of our binary file to a background thread if possible. 
>>> Our Win32 Windows desktop program is mostly MFC with about 450,000
>>> lines of C++ code.
>>>
>>> I do suspect that this is not doable, due to the nature of the data
>>> being used for dialogs and such.
>>>
>>> Thanks,
>>> Lynn
>> I found "C++ Concurrency in Action, 2nd Edition" by Williams,
>> Anthony. Has anyone read this and found it to be a good education on
>> threads ?
>> https://www.amazon.com/C-Concurrency-Action-Anthony-Williams/dp/1617294691/
>
> I have the 1st version of that book, it's a very good one on the
> subject. AFAIK it is "the" book about C++ multi-threaded programming.

Amazon doesn't have it in Kindle format, but the second edition (2019)
is available from the print, ebook, and audio formats.

I haven't read it, so I can't comment on how good it is.

https://www.manning.com/books/c-plus-plus-concurrency-in-action-second-edition

-- 
Keith Thompson (The_Other_Keith) Keith.S.Thompson+u@gmail.com
Working, but not speaking, for Philips Healthcare
void Void(void) { Void(); } /* The recursive call of the void */

[toc] | [prev] | [next] | [standalone]


#80365

FromKeith Thompson <Keith.S.Thompson+u@gmail.com>
Date2021-06-12 21:49 -0700
Message-ID<871r96z7we.fsf@nosuchdomain.example.com>
In reply to#80364
Keith Thompson <Keith.S.Thompson+u@gmail.com> writes:
> Cholo Lennon <chololennon@hotmail.com> writes:
>> On 6/11/21 12:03 AM, Lynn McGuire wrote:
>>> On 6/10/2021 4:59 PM, Lynn McGuire wrote:
>>>> Is there a good reference on threads ?  I would like to delegate
>>>> the writing of our binary file to a background thread if possible. 
>>>> Our Win32 Windows desktop program is mostly MFC with about 450,000
>>>> lines of C++ code.
>>>>
>>>> I do suspect that this is not doable, due to the nature of the data
>>>> being used for dialogs and such.
>>>>
>>>> Thanks,
>>>> Lynn
>>> I found "C++ Concurrency in Action, 2nd Edition" by Williams,
>>> Anthony. Has anyone read this and found it to be a good education on
>>> threads ?
>>> https://www.amazon.com/C-Concurrency-Action-Anthony-Williams/dp/1617294691/
>>
>> I have the 1st version of that book, it's a very good one on the
>> subject. AFAIK it is "the" book about C++ multi-threaded programming.
>
> Amazon doesn't have it in Kindle format, but the second edition (2019)
> is available from the print, ebook, and audio formats.

I meant "available from the publisher".

> I haven't read it, so I can't comment on how good it is.
>
> https://www.manning.com/books/c-plus-plus-concurrency-in-action-second-edition

-- 
Keith Thompson (The_Other_Keith) Keith.S.Thompson+u@gmail.com
Working, but not speaking, for Philips Healthcare
void Void(void) { Void(); } /* The recursive call of the void */

[toc] | [prev] | [next] | [standalone]


Page 1 of 2  [1] 2  Next page →

Back to top | Article view | comp.lang.c++


csiph-web