Envision, Create, Share

Welcome to HBGames, a leading amateur game development forum and Discord server. All are welcome, and amongst our ranks you will find experts in their field from all aspects of video game design and development.

Concurrency - What works.

Greetings,

In the past few days I've been researching the next wave of language developments on the .NET framework. Into this, there's some interesting conceptual work being done with concurrency (starting as a library extension, as opposed to a language extension).

My question today is, what do people here know of concurrency, how's it work, what are the different methodologies involved. Such as transactions vs. locks, and so on. What kind of considerations would a language developer need to consider when developing a concurrent construct, and what are the most important things that they would need to know, and so on.

In the test case of allowing concurrent blocks, disregarding syntax for now, if you had three concurrent sections of code, what kind of considerations would you need to make with respect to stack of each of the concurrent processes and how would each lead into the locks/transactions that are placed upon the member variables associated to the code. How would concurrency be handled in recursive cases, and so on.

The reason I'm asking is I need to learn concurrency for when I develop the language I'm interested in making. Experimenting with the various concepts involved with it would be helpful, especially if I can pinpoint a valid means to handle concurrency. There's no magic involved though, there's still the requirement for coders who want concurrency to explicitly state where concurrency would be plausible, since code flow analysis systems aren't advanced enough to make the decisions for you (especially since there's no consensus on a proper method to handle concurrency, if they don't know the best way, how can they streamline it in an automated form when they can't agree on how to do it manually).
 

Zeriab

Sponsor

I have been hauled through various lock, barriers, semaphores and monitors.
I have not really gotten very far into the subject though.

I have no experience with writing program languages with concurrency so I can't really help on that end.
As an user of your programming language I would want a simple way of synchronizing a block of code and share variables. (Kinda like how synchronized and volatile work in Java.)
I would also very much like to have a way of constructing monitors, hopefully with multiple queues.

It's been a long time since I had to work with concurrency so my terminology is most likely a bit lacky, but I hope you can understand what I am saying even if I have mixed up a term.

Maybe I should look at the language developments on the .NET framework. I have look at Spec# which has a very interesting concept about non-null types.

*hugs*
- Zeriab
 

Thank you for viewing

HBGames is a leading amateur video game development forum and Discord server open to all ability levels. Feel free to have a nosey around!

Discord

Join our growing and active Discord server to discuss all aspects of game making in a relaxed environment. Join Us

Content

  • Our Games
  • Games in Development
  • Emoji by Twemoji.
    Top