⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 关于多线程里内存分配的问题,望高手解答 - developer discussion boards.mht

📁 symbian的学习笔记
💻 MHT
📖 第 1 页 / 共 5 页
字号:
=BC=8C=E6=88=91=E9=83=BD=E4=B8=8D=E6=95=A2=E5=9C=A8SYMBIAN=E4=B8=AD=E4=BD=
=BF=E7=94=A8=E5=A4=9A=E7=BA=BF=E7=A8=8B=E4=BA=86=EF=BC=8C=E6=9C=9B=E9=AB=98=
=E6=89=8B=E8=83=BD=E8=A7=A3=E7=AD=94<IMG=20
            class=3Dinlineimg title=3DEmbarrassment alt=3D""=20
            =
src=3D"http://discussion.forum.nokia.com/forum/images/smilies/redface.gif=
"=20
            =
border=3D0>=EF=BC=8C=E5=8F=A6=E5=A4=96=E6=88=91=E7=9A=84=E5=BC=80=E5=8F=91=
=E6=98=AF S60=20
      =
3rd=E7=89=88=E6=9C=AC=E4=B8=8A</DIV></TD></TR></TBODY></TABLE></DIV>=E4=B8=
=8D=E9=9C=80=E8=A6=81=E8=BF=99=E4=B9=88=E5=A4=8D=E6=9D=82=E5=90=A7, =
=E4=BD=A0=E7=9B=B4=E6=8E=A5=E4=BD=BF=E7=94=A8new,=20
      delete=E6=9D=A5=E5=88=86=E9=85=8D=E5=86=85=E5=AD=98, =
=E5=A6=82=E6=9E=9C=E4=B8=8D=E5=90=8C=E7=BA=BF=E7=A8=8B=E8=AE=BF=E9=97=AE=E5=
=90=8C=E4=B8=80=E6=8C=87=E9=92=88,=20
      =
=E7=94=A8RMutex=E6=88=96RSemaphore=E5=81=9A=E4=BF=9D=E6=8A=A4=E5=8D=B3=E5=
=8F=AF.<BR><BR>=E9=82=A3=E4=BA=9B=E5=87=BD=E6=95=B0=E4=B8=8D=E6=98=AF=E7=BA=
=BF=E7=A8=8B=E5=AE=89=E5=85=A8=E6=98=AF=E6=8C=87=E5=AE=83=E6=B2=A1=E6=9C=89=
=E5=81=9A=E7=BA=BF=E7=A8=8B=E4=BA=92=E6=96=A5, =
=E6=AF=94=E5=A6=82RArray::Append,=20
      =
=E5=A6=82=E6=9E=9C=E4=BD=A02=E4=B8=AA=E7=BA=BF=E7=A8=8B=E5=90=8C=E6=97=B6=
=E8=B0=83=E7=94=A8, =
=E9=82=A3=E4=B9=88=E4=BD=A0=E8=A6=81=E7=94=A8=E9=94=81=E4=BF=9D=E6=8A=A4,=
 =E5=A6=82=E6=9E=9C=E4=B8=8D=E4=BC=9A=E5=90=8C=E6=97=B6=E8=B0=83, =
=E9=82=A3=E4=B9=88=E5=AE=8C=E5=85=A8=E5=BF=BD=E7=95=A5, =
=E5=90=84=E4=B8=AA=E7=BA=BF=E7=A8=8B=E7=94=A8=E8=87=AA=E5=B7=B1=E7=9A=84=E6=
=8C=87=E9=92=88=E6=98=AF=E4=B8=8D=E9=9C=80=E8=A6=81=E9=94=81=E4=BF=9D=E6=8A=
=A4=E7=9A=84,=20
      =
=E6=A5=BC=E4=B8=BB=E4=BD=A0=E6=9C=89=E7=82=B9=E6=A6=82=E5=BF=B5=E6=B7=B7=E6=
=B7=86=E5=93=A6.</DIV><!-- / message --><!-- sig -->
      <DIV><BR>
      <DIV class=3Dhr style=3D"WIDTH: 100px">
      <HR>
      </DIV>
      <DIV =
class=3Dspacer></DIV>----------------------------<BR>=E5=9D=9A=E6=8C=81=E5=
=AD=A6=E4=B9=A0,=20
      =E5=9D=9A=E6=8C=81=E7=BC=96=E7=A0=81<BR>qxiaoyuan </DIV><!-- / sig =
-->
      <DIV style=3D"MARGIN-TOP: 10px" align=3Dright><!-- controls -->
      <DIV style=3D"FLOAT: left"></DIV><A=20
      =
href=3D"http://discussion.forum.nokia.com/forum/newreply.php?do=3Dnewrepl=
y&amp;p=3D495566"=20
      rel=3Dnofollow><IMG alt=3D"Reply With Quote"=20
      =
src=3D"http://www.forum.nokia.com/piazza/discussion/forum/images/element/=
buttons_blue/quote.gif"=20
      border=3D0></A>=20
    <!-- / controls --></DIV><!-- message, attachments, sig =
--></TD></TR></TBODY></TABLE></DIV><!-- end fnPostBody --></DIV><!-- =
post 495566 popup menu -->
<DIV class=3Dvbmenu_popup id=3Dpostmenu_495566_menu style=3D"DISPLAY: =
none">
<TABLE cellSpacing=3D1 cellPadding=3D4 border=3D0>
  <TBODY>
  <TR>
    <TD class=3Dthead>qxiaoyuan</TD></TR>
  <TR>
    <TD class=3Dvbmenu_option><A=20
      =
href=3D"http://discussion.forum.nokia.com/forum/member.php?u=3D157042">Vi=
ew=20
      Public Profile</A></TD></TR>
  <TR>
    <TD class=3Dvbmenu_option><A=20
      =
href=3D"http://discussion.forum.nokia.com/forum/search.php?do=3Dfinduser&=
amp;u=3D157042"=20
      rel=3Dnofollow>Find all posts by =
qxiaoyuan</A></TD></TR></TBODY></TABLE></DIV><!-- / post 495566 popup =
menu --></DIV><!-- / post #495566 --><!-- post #495630 -->
<DIV class=3DfnDiscussionPost id=3Dedit495630><!-- this is not the last =
post shown on the page -->
<DIV class=3DfnPostHeader>
<H3 class=3DfnToggleHeadline><SPAN class=3DfnFloatR><A =
id=3Dpostcount495630=20
href=3D"http://discussion.forum.nokia.com/forum/showpost.php?p=3D495630&a=
mp;postcount=3D3"=20
target=3Dnew rel=3Dnofollow name=3D3>#3</A> <A=20
onclick=3D"return toggle_collapse('postbit_495630')"=20
href=3D"http://discussion.forum.nokia.com/forum/showthread.php?t=3D149100=
#top"><IMG=20
class=3Dinlineimg id=3Dcollapseimg_postbit_495630 alt=3D""=20
src=3D"http://www.forum.nokia.com/piazza/discussion/forum/images/element/=
buttons_blue/collapse_thead.gif"=20
border=3D0></A> </SPAN><A name=3Dpost495630><IMG class=3Dinlineimg =
alt=3DOld=20
src=3D"http://www.forum.nokia.com/piazza/discussion/forum/images/element/=
statusicon/post_old.gif"=20
border=3D0></A> <!-- icon and title --><STRONG>Re: =
=E5=85=B3=E4=BA=8E=E5=A4=9A=E7=BA=BF=E7=A8=8B=E9=87=8C=E5=86=85=E5=AD=98=E5=
=88=86=E9=85=8D=E7=9A=84=E9=97=AE=E9=A2=98=EF=BC=8C=E6=9C=9B=E9=AB=98=E6=89=
=8B=E8=A7=A3=E7=AD=94 - </STRONG><!-- status icon and date --><!-- =
status icon and date -->2008-11-03,=20
13:25 <!-- / status icon and date --></H3></DIV>
<DIV id=3Dcollapseobj_postbit_495630>
<DIV class=3DfnPostBody>
<TABLE class=3Dtborder id=3Dpost495630 style=3D"BORDER-TOP-WIDTH: 0px" =
cellSpacing=3D1=20
cellPadding=3D6 width=3D"100%" align=3Dcenter border=3D0>
  <TBODY>
  <TR>
    <TD class=3Dalt2=20
    style=3D"BORDER-TOP-WIDTH: 0px; PADDING-RIGHT: 0px; PADDING-LEFT: =
0px; PADDING-BOTTOM: 0px; PADDING-TOP: 0px"><!-- user info -->
      <DIV class=3DfnPostInfo><SPAN class=3DfnFloatR>
      <DIV>Join Date: May 2008</DIV>
      <DIV>Posts: 19</DIV>
      <DIV=20
      style=3D"PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: =
2px; PADDING-TOP: 2px"></DIV>
      <DIV></DIV></SPAN><SPAN class=3DfnPostUser id=3Dpostmenu_495630><A =

      class=3Dbigusername=20
      =
href=3D"http://discussion.forum.nokia.com/forum/member.php?u=3D208938">ti=
anciyixiao</A>
      <SCRIPT=20
      type=3Dtext/javascript> vbmenu_register("postmenu_495630", true); =
</SCRIPT>
       </SPAN>
      <DIV id=3Dpostmenu_495630><SPAN class=3Doffline>Offline</SPAN>
      <SCRIPT=20
      type=3Dtext/javascript> vbmenu_register("postmenu_495630", true); =
</SCRIPT>
       </DIV><SPAN class=3DfnBlocking>
      <DIV class=3Dsmallfont>Registered User</DIV></SPAN></DIV><!-- / =
user info --></TD></TR>
  <TR>
    <TD class=3Dalt1 id=3Dtd_post_495630 height=3D"100%">
      <DIV style=3D"FLOAT: right">
      <DIV=20
      style=3D"PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: =
0px; PADDING-TOP: 2px"></DIV></DIV>
      <DIV></DIV><!-- message, attachments, sig -->
      <DIV class=3Dspacer></DIV><!-- message -->
      <DIV class=3Dvb_postbit id=3Dpost_message_495630>
      <DIV style=3D"MARGIN: 5px 20px 20px">
      <DIV class=3Dsmallfont style=3D"MARGIN-BOTTOM: 2px">Quote:</DIV>
      <TABLE cellSpacing=3D0 cellPadding=3D6 width=3D"100%" border=3D0>
        <TBODY>
        <TR>
          <TD class=3Dalt2=20
          style=3D"BORDER-RIGHT: 1px inset; BORDER-TOP: 1px inset; =
BORDER-LEFT: 1px inset; BORDER-BOTTOM: 1px inset">Overview:<BR>Calls=20
            like User::Alloc() and User::Available() are not thread safe =
if used=20
            in multiple threads with a shared heap.<BR>Detailed=20
            description:<BR>User::Alloc() and User::Available() calls =
are not=20
            thread safe by themselves. In a multithreaded application it =
is=20
            possible for the parent thread to specify the heap used by a =
child=20
            thread. There are two options: dedicated heap and shared =
heap. If=20
            two or more threads operate on a shared heap, then =
synchronization=20
            (e.g. with mutexes) is required.<BR>Solution:<BR>1) Shared=20
            heap:<BR>IMPORT_C TInt Create( const TDesC=20
            &amp;aName,<BR>TThreadFunction aFunction,<BR>TInt=20
            aStackSize,<BR>RAllocator *aHeap,<BR>TAny =
*aPtr,<BR>TOwnerType aType=20
            =3D EOwnerProcess ); <BR>If the aHeap parameter is set as =
NULL in the=20
            above call, then the thread will be sharing a heap memory =
with the=20
            parent thread.<BR>In this case, memory allocation should be=20
            synchronized in their respective threads:<BR>RMutex=20
            sharedMutex;<BR>...<BR><BR>sharedMutex.Wait();<BR>array[i] =
=3D=20
            User::Alloc( bytesToAlloc=20
            );<BR>sharedMutex.Signal();<BR>sharedMutex.Wait();<BR>TInt =
heapSize=20
            =3D User::Available( largestBlock =
);<BR>sharedMutex.Signal();<BR>2)=20
            Dedicated heap:<BR>When the following overloaded version of=20
            RThread::Create() is used, the new thread will use its own=20
            independent heap.<BR>IMPORT_C TInt Create( const TDesC=20
            &amp;aName,<BR>TThreadFunction aFunction,<BR>TInt=20
            aStackSize,<BR>TInt aHeapMinSize,<BR>TInt =
aHeapMaxSize,<BR>TAny=20
            *aPtr,<BR>TOwnerType aType =3D EOwnerProcess );<BR>With =
separate=20
            heaps, the memory allocation calls do not have to be =
synchronized.=20
          =
</TD></TR></TBODY></TABLE></DIV>=E8=B0=A2=E8=B0=A2qxiaoyuan=E7=9A=84=E5=9B=
=9E=E7=AD=94=EF=BC=8C=E4=BD=A0=E6=89=80=E8=AF=B4=E5=A4=9A=E4=B8=AA=E7=BA=BF=
=E7=A8=8B=E8=AE=BF=E9=97=AE=E5=90=8C=E4=B8=80=E8=B5=84=E6=BA=90=E8=A6=81=E5=
=8A=A0=E9=94=81=E4=BF=9D=E6=8A=A4=E6=88=91=E6=98=AF=E6=98=8E=E7=99=BD=E7=9A=
=84<IMG=20
      class=3Dinlineimg title=3DSmilie alt=3D""=20
      =
src=3D"http://discussion.forum.nokia.com/forum/images/smilies/smile.gif" =

      =
border=3D0>=EF=BC=8C=E6=88=91=E4=B9=8B=E6=89=80=E4=BB=A5=E4=BC=9A=E6=9C=89=
=E7=96=91=E9=97=AE=E6=AD=A3=E6=98=AF=E7=9C=8B=E4=BA=86=E4=B8=8A=E9=9D=A2=E8=
=BF=99=E7=AF=87=E6=96=87=E6=A1=A3=E6=89=8D=E4=BA=A7=E7=94=9F=E7=9A=84<IMG=
 class=3Dinlineimg title=3DEEK! alt=3D""=20
      =
src=3D"http://discussion.forum.nokia.com/forum/images/smilies/eek.gif"=20
      =
border=3D0>=EF=BC=8C=E4=B8=BA=E4=BB=80=E4=B9=88=E5=9C=A8=E5=88=86=E9=85=8D=
=E5=86=85=E5=AD=98=E7=9A=84=E6=97=B6=E5=80=99=E4=BC=9A=E4=B8=8D=E5=AE=89=E5=
=85=A8=EF=BC=8C=E6=88=91=E4=B8=80=E7=9B=B4=E9=83=BD=E4=B8=8D=E6=98=AF=E5=BE=
=88=E7=90=86=E8=A7=A3<IMG class=3Dinlineimg title=3DConfused=20
      alt=3D""=20
      =
src=3D"http://discussion.forum.nokia.com/forum/images/smilies/confused.gi=
f"=20
      border=3D0><IMG class=3Dinlineimg title=3DConfused alt=3D""=20
      =
src=3D"http://discussion.forum.nokia.com/forum/images/smilies/confused.gi=
f"=20
      =
border=3D0>=EF=BC=8C=E6=89=80=E4=BB=A5=E6=89=8D=E5=8F=91=E8=BF=99=E4=B8=AA=
=E5=B8=96=E5=AD=90=E9=97=AE=E5=BE=97=EF=BC=8C=E5=9B=A0=E4=B8=BA=E5=A6=82=E6=
=9E=9C=E7=9C=9F=E7=9A=84=E5=9C=A8=E5=A4=9A=E7=BA=BF=E7=A8=8B=E5=88=86=E9=85=
=8D=E5=86=85=E5=AD=98=E4=B8=8D=E5=AE=89=E5=85=A8=EF=BC=8C=E5=A6=82=E6=9E=9C=
=E6=89=80=E6=9C=89=E7=9A=84=E5=88=86=E9=85=8D=E5=86=85=E5=AD=98=E9=83=BD=E9=
=9C=80=E8=A6=81=E5=8A=A0=E9=94=81=E4=BF=9D=E6=8A=A4=EF=BC=8C=E9=82=A3=E4=BB=
=A3=E7=A0=81=E4=BC=9A=E5=86=99=E5=BE=97=E9=9D=9E=E5=B8=B8=E9=9A=BE=E7=9C=8B=
<IMG=20
      class=3Dinlineimg title=3DFrown alt=3D""=20
      =
src=3D"http://discussion.forum.nokia.com/forum/images/smilies/frown.gif" =

      border=3D0></DIV><!-- / message --><!-- edit note -->
      <DIV class=3Dsmallfont>
      <DIV class=3Dspacer></DIV><EM>Last edited by tianciyixiao : =
2008-11-03 at=20
      <SPAN class=3Dtime>13:55</SPAN>. </EM></DIV><!-- / edit note -->
      <DIV style=3D"MARGIN-TOP: 10px" align=3Dright><!-- controls -->
      <DIV style=3D"FLOAT: left"></DIV><A=20
      =
href=3D"http://discussion.forum.nokia.com/forum/newreply.php?do=3Dnewrepl=
y&amp;p=3D495630"=20
      rel=3Dnofollow><IMG alt=3D"Reply With Quote"=20
      =
src=3D"http://www.forum.nokia.com/piazza/discussion/forum/images/element/=
buttons_blue/quote.gif"=20
      border=3D0></A>=20
    <!-- / controls --></DIV><!-- message, attachments, sig =
--></TD></TR></TBODY></TABLE></DIV><!-- end fnPostBody --></DIV><!-- =
post 495630 popup menu -->
<DIV class=3Dvbmenu_popup id=3Dpostmenu_495630_menu style=3D"DISPLAY: =
none">
<TABLE cellSpacing=3D1 cellPadding=3D4 border=3D0>
  <TBODY>
  <TR>
    <TD class=3Dthead>tianciyixiao</TD></TR>
  <TR>
    <TD class=3Dvbmenu_option><A=20
      =
href=3D"http://discussion.forum.nokia.com/forum/member.php?u=3D208938">Vi=
ew=20
      Public Profile</A></TD></TR>
  <TR>
    <TD class=3Dvbmenu_option><A=20
      =
href=3D"http://discussion.forum.nokia.com/forum/search.php?do=3Dfinduser&=
amp;u=3D208938"=20
      rel=3Dnofollow>Find all posts by =
tianciyixiao</A></TD></TR></TBODY></TABLE></DIV><!-- / post 495630 popup =
menu --></DIV><!-- / post #495630 --><!-- post #495860 -->
<DIV class=3DfnDiscussionPost id=3Dedit495860><!-- this is not the last =
post shown on the page -->
<DIV class=3DfnPostHeader>
<H3 class=3DfnToggleHeadline><SPAN class=3DfnFloatR><A =
id=3Dpostcount495860=20
href=3D"http://discussion.forum.nokia.com/forum/showpost.php?p=3D495860&a=
mp;postcount=3D4"=20
target=3Dnew rel=3Dnofollow name=3D4>#4</A> <A=20
onclick=3D"return toggle_collapse('postbit_495860')"=20
href=3D"http://discussion.forum.nokia.com/forum/showthread.php?t=3D149100=
#top"

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -