ibm-information-center/dist/eclipse/plugins/i5OS.ic.rzahw_5.4.0.1/rzahwsllco.htm

77 lines
4.9 KiB
HTML

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html lang="en-us" xml:lang="en-us">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="security" content="public" />
<meta name="Robots" content="index,follow" />
<meta http-equiv="PICS-Label" content='(PICS-1.1 "http://www.icra.org/ratingsv02.html" l gen true r (cz 1 lz 1 nz 1 oz 1 vz 1) "http://www.rsac.org/ratingsv01.html" l gen true r (n 0 s 0 v 0 l 0) "http://www.classify.org/safesurf/" l gen true r (SS~~000 1))' />
<meta name="DC.Type" content="reference" />
<meta name="DC.Title" content="Space location locks" />
<meta name="abstract" content="A space location lock puts a logical lock on any single byte of storage. The lock does not change the storage or effect your application's access to the storage. The lock is a piece of information recorded by the system." />
<meta name="description" content="A space location lock puts a logical lock on any single byte of storage. The lock does not change the storage or effect your application's access to the storage. The lock is a piece of information recorded by the system." />
<meta name="DC.Relation" scheme="URI" content="rzahwsynco.htm" />
<meta name="DC.Relation" scheme="URI" content="rzahwe16rx.htm" />
<meta name="copyright" content="(C) Copyright IBM Corporation 1998, 2006" />
<meta name="DC.Rights.Owner" content="(C) Copyright IBM Corporation 1998, 2006" />
<meta name="DC.Format" content="XHTML" />
<meta name="DC.Identifier" content="rzahwsll-sllco" />
<meta name="DC.Language" content="en-us" />
<!-- All rights reserved. Licensed Materials Property of IBM -->
<!-- US Government Users Restricted Rights -->
<!-- Use, duplication or disclosure restricted by -->
<!-- GSA ADP Schedule Contract with IBM Corp. -->
<link rel="stylesheet" type="text/css" href="./ibmdita.css" />
<link rel="stylesheet" type="text/css" href="./ic.css" />
<title>Space location locks</title>
</head>
<body id="rzahwsll-sllco"><a name="rzahwsll-sllco"><!-- --></a>
<!-- Java sync-link --><script language="Javascript" src="../rzahg/synch.js" type="text/javascript"></script>
<h1 class="topictitle1">Space location locks</h1>
<div><p>A space location lock puts a logical lock on any single byte of
storage. The lock does not change the storage or effect your application's
access to the storage. The lock is a piece of information recorded
by the system.</p>
<div class="section"><p>Space location locks provide cooperative locking
similar to that provided by mutual exclusion (mutexes). However, space location
locks differ from mutexes in several respects: </p>
<ul><li>You can use the space location lock directly on the data it is protecting.
The space location lock does not require your application to create and maintain
an additional object. Correct results in your application still depend on
the fact that all threads that are accessing the data use the space location
lock. </li>
<li>Space location locks allow an application to coordinate the use of different
locking request types. For example, more than one thread can use space location
locks to acquire a shared lock on the same data. </li>
<li>Due to the extra lock types that are provided by space location locks,
the concept of an owner is slightly different than with mutexes. There can
be multiple owners of a shared lock if each owner has successfully acquired
the shared lock. For a thread to get an exclusive lock, all of the shared
locks must be unlocked. </li>
<li>Space location locks have different performance implications to your application
than mutexes. A space location lock costs about 500 reduced instruction set
computer (RISC) instructions to lock in a path without contention between
other threads. A mutex costs about 50 RISC instructions in the same path.
However, a space location lock has no creation or deletion costs associated
with it, while a mutex costs approximately 1000 RISC instructions for creation
or deletion.</li>
</ul>
</div>
<div class="section"><div class="p"> <div class="note"><span class="notetitle">Note:</span> Java™ does not have the ability to directly
use space location locks. Space location locks require the use of pointers.</div>
</div>
</div>
</div>
<div>
<ul class="ullinks">
<li class="ulchildlink"><strong><a href="rzahwe16rx.htm">Example: Space location locks in Pthread programs</a></strong><br />
This example shows a Pthread program that is dynamically initializing an integer using the space location lock synchronization primitive.</li>
</ul>
<div class="familylinks">
<div class="parentlink"><strong>Parent topic:</strong> <a href="rzahwsynco.htm" title="When you create code that is threadsafe but still benefits from sharing data or resources between threads, the most important aspect of programming becomes the ability to synchronize threads.">Synchronization techniques among threads</a></div>
</div>
</div>
</body>
</html>