Symbian3/SDK/Source/GUID-092C18D4-A525-5562-9BF6-41435E400290.dita
changeset 7 51a74ef9ed63
child 8 ae94777fff8f
equal deleted inserted replaced
6:43e37759235e 7:51a74ef9ed63
       
     1 <?xml version="1.0" encoding="utf-8"?>
       
     2 <!-- Copyright (c) 2007-2010 Nokia Corporation and/or its subsidiary(-ies) All rights reserved. -->
       
     3 <!-- This component and the accompanying materials are made available under the terms of the License 
       
     4 "Eclipse Public License v1.0" which accompanies this distribution, 
       
     5 and is available at the URL "http://www.eclipse.org/legal/epl-v10.html". -->
       
     6 <!-- Initial Contributors:
       
     7     Nokia Corporation - initial contribution.
       
     8 Contributors: 
       
     9 -->
       
    10 <!DOCTYPE concept
       
    11   PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
       
    12 <concept id="GUID-092C18D4-A525-5562-9BF6-41435E400290" xml:lang="en"><title>LibpThread
       
    13 Example - Using P.I.P.S OECORE </title><prolog><metadata><keywords/></metadata></prolog><conbody>
       
    14 <p>This example application shows, using a P.I.P.S. (P.I.P.S. Is POSIX on
       
    15 the Symbian platform) program, the use of the LibpThread library to demonstrate
       
    16 simple multi-threading and synchronisation. </p>
       
    17 <p>The purpose is to create a basic multithreading example showing the usage
       
    18 of the LibpThread APIs. This example also shows how multi-threading is used
       
    19 to achieve concurrency in tasks and sharing of resources. </p>
       
    20 <section id="GUID-026FD8D6-6C4A-5958-B289-775D4AE1E756-GENID-1-8-1-11-1-1-5-1-3-1-11-1-7-1-2-3"><title>Download</title> <p>Click
       
    21 on the following link to download the example: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/zips/guid-84e8baf2-57f1-4255-aeb8-a6ed0ed2145e.zip" scope="external"> LibpThreadExample.zip</xref></p><p>Click: <xref href="guid-6013a680-57f9-415b-8851-c4fa63356636/guid-84e8baf2-57f1-4255-aeb8-a6ed0ed2145e.html" scope="peer">browse</xref> to view the example code. </p> </section>
       
    22 <section id="GUID-7E7C4564-B10E-41F9-8A9D-D8A6C5E9C51C-GENID-1-8-1-11-1-1-5-1-3-1-11-1-7-1-2-4"><title>Description</title> <p>The
       
    23 following sections provide more information about the steps that the example
       
    24 performs. </p> <p><b> Thread Synchronisation</b> </p> <p>The example creates
       
    25 three threads named ThreadOne, ThreadTwo and ThreadThree. The threads write
       
    26 "One", "Two" and "Three" five times in a text file. The text file, located
       
    27 in <filepath>epoc32\winscw\c\newfile.txt</filepath>, is used as a shared resource
       
    28 for all three threads. A mutex is used to ensure that first ThreadOne writes
       
    29 in the file, then ThreadTwo and then ThreadThree. If the mutex is not used
       
    30 all the threads can simultaneously write in the file. This can be seen by
       
    31 commenting out <codeph>pthread_mutex_lock</codeph> and <codeph>pthread_mutex_unlock</codeph> in
       
    32 the code. </p> </section>
       
    33 <section id="GUID-236CB272-E196-4A61-B627-ACFFC4B37AA1"><title>Related APIs</title><p><xref href="GUID-736D5209-CD86-324C-BAB0-7B15C3D1862D.dita"><apiname>pthread_mutex_lock</apiname></xref> </p><p><xref href="GUID-9D7CD10C-F958-3792-8888-B7F39B148302.dita"><apiname>pthread_mutex_unlock</apiname></xref> </p><p><xref href="GUID-3A89E849-DD7F-3381-9469-6CD89892E616.dita"><apiname>pthread_join</apiname></xref></p><p><xref href="GUID-889CB456-6980-3B92-9350-0C6C8C9AC435.dita"><apiname>pthread_mutex_t</apiname></xref></p></section>
       
    34 <section id="GUID-67A72761-1D92-46D1-B1C9-7455978BDE4E-GENID-1-8-1-11-1-1-5-1-3-1-11-1-7-1-2-6"><title>Build</title> <p>The <xref href="GUID-3100800B-B2F7-50EF-BD4C-3C345ECCB2A5.dita">Symbian build
       
    35 process</xref> describes how to build this example application. </p> <p>The
       
    36 example builds an executable called <filepath>LibpThreadExample.exe</filepath> in
       
    37 the standard locations. </p> <p>To run the example, start <filepath>LibpThreadExample.exe</filepath> from
       
    38 the file system or from your IDE. After launching the executable, depending
       
    39 on the emulator you are using, you may need to navigate away from the application
       
    40 launcher or shell screen to view the console. </p> </section>
       
    41 </conbody></concept>