4

Is javascript running on single thread? If I declare a global array, and start changing it (eg removing elements) on AJAX callback and at the same time start changing the very same array in another function (called with SetTimeOut) - is there a risk of a race condition?

I found this thread: javascript race condition, someone said race conditions never happen in javascript because it always runs in single thread and single callstack. Does this depend on how browser implements it or is it guaranteed to be always single-threaded on all browsers?

2
  • 2
    There may be race conditions due to network latency if you're working with ajax, but not because of JavaScript itself because it's single-threaded. Commented Mar 15, 2012 at 18:45
  • Not quite always: stackoverflow.com/questions/2734025/… Commented Mar 28, 2013 at 18:42

2 Answers 2

4

is it guaranteed to be always single-threaded on all browsers?

Yes.

Of course, things like HTTP requests might work in different threads behind the scenes, but when your Javascript code is executed it can only happen from one thread at a time.

Sign up to request clarification or add additional context in comments.

1 Comment

What if I run a script.js file in one tab and in another tab run the same script.js tab, will it still use the same thread?
2

JavaScript is single threaded.

The referenced post discusses differences of setTimeout on different machines...


HTML5 introduces the concept of WebWorkers which executes JavaScript on multiple background threads. Though it is not supported on all browsers...

https://developer.mozilla.org/En/Using_web_workers

http://dev.w3.org/html5/workers/

1 Comment

With web workers, it's more like having two separate single threaded scripts running and sending messages to each other than having one multithreaded script. A variable can't be visible in both threads, workers can't manipulate the DOM, etc.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.