Still celebrating National IT Professionals Day with 3 months of free Premium Membership. Use Code ITDAY17

x
?
Solved

Java's keyword synchronized

Posted on 2004-09-09
7
Medium Priority
?
350 Views
Last Modified: 2012-06-21
Hey experts,

I read the Java documentation about threads and the interface Runnable, but I kind of couldn't understand the word synchronized (when used in a function header): Does that mean that an entering thread locks mutex before entering this function so it can have sole access to it or does it mean that instructions inside the function are "synchronized" between threads (also sometimes it seemed to mean that threads can be created inside synchronized functions or something like that)

Any explanations would be really helpful
0
Comment
Question by:mte01
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 4
  • 3
7 Comments
 
LVL 24

Accepted Solution

by:
sciuriware earned 800 total points
ID: 12018540
synchonised is a tag to methods and objects.
It means that provisions are (to be) made so that not 2 or more threads will try to modify
the data and/or to call the method(s) concurrently.
A thread by itself has only one "life" so you can't synchonise it.
A thread calling a synchronised method will "make sure" no other thread "is there"
and will wait until the other one is finished.

There's a lot more, but I recommend you look at the tutorial(s) on the SUN site.

;JOOP!
0
 
LVL 3

Author Comment

by:mte01
ID: 12018612
>> A thread by itself has only one "life" so you can't synchonise it.

What does that mean??
0
 
LVL 24

Expert Comment

by:sciuriware
ID: 12018738
A thread is a single phenomenon: it runs or not.
You can't tell it to wait because it is doing something itself.
From 2 threads on you can.
;JOOP!
0
Build and deliver software with DevOps

A digital transformation requires faster time to market, shorter software development lifecycles, and the ability to adapt rapidly to changing customer demands. DevOps provides the solution.

 
LVL 3

Author Comment

by:mte01
ID: 12018848
Ahaa....what you mean is that with a single thread you don't have to do synchronization (yeh sure that's obvious)
0
 
LVL 3

Author Comment

by:mte01
ID: 12019137
I'll keep the question now open for like an hour for any new useful comments...
0
 
LVL 3

Author Comment

by:mte01
ID: 12020067
I guess that's it......what sciuriware said was more than enough....
0
 
LVL 24

Expert Comment

by:sciuriware
ID: 12023895
One more: be aware that even a tiny program (hello world) has several threads running.
But these are started from the JVM and may be considered safe and balanced.
For you the main thread may be the only thread to account for.
Things get more complex by adding a GUI, which introduces several new threads.
Almost every week you will find some question in this forum that rises
from putting a GUI thread to work from itself.
I wrote some applications with 100's of concurrent threads; only then
things get difficult; unless you know exactly where and how those interfere.
NOT WHEN! you just can not predict WHEN events will interfere.
Therefore we try to control events by 'synchronised' methods and objects.
;JOOP!
0

Featured Post

The top UI technologies you need to be aware of

An important part of the job as a front-end developer is to stay up to date and in contact with new tools, trends and workflows. That’s why you cannot miss this upcoming webinar to explore the latest trends in UI technologies!

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

This was posted to the Netbeans forum a Feb, 2010 and I also sent it to Verisign. Who didn't help much in my struggles to get my application signed. ------------------------- Start The idea here is to target your cell phones with the correct…
Introduction This article is the last of three articles that explain why and how the Experts Exchange QA Team does test automation for our web site. This article covers our test design approach and then goes through a simple test case example, how …
Viewers learn about the third conditional statement “else if” and use it in an example program. Then additional information about conditional statements is provided, covering the topic thoroughly. Viewers learn about the third conditional statement …
This tutorial explains how to use the VisualVM tool for the Java platform application. This video goes into detail on the Threads, Sampler, and Profiler tabs.
Suggested Courses

688 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question