java - QtWebkit 多线程

标签 java multithreading qt qt-jambi

我正在开发一个使用 QT-Jambi 将文本渲染为图像的项目。

webkit 渲染 HTML 并生成图像。 使用单线程运行代码时没有问题 但是当我使用多个线程(5-6)运行程序,每个线程多次调用 getImage() 时,代码崩溃了

对于每个线程,我传递一个新的 QWebPage 并使用 QWebPgae.moveToThread()。

~~~~~~~~~~~~代码 getImage()~~~~~~~~~~~~~~~

public void getImage(String str, int width, String fname,
        boolean istransparent) {


    QSize qSize = new QSize(width,height);


    page.setViewportSize(qSize);
    str = applyStyle(str);

    page.mainFrame().setHtml(str);
    String imageName = fname + "_" + width + "x"
            + page.mainFrame().contentsSize().height() + ".png";

    System.out.println("Creating Full Image : " + imageName);
    page.setViewportSize(page.mainFrame().contentsSize());


    QImage qImage = new QImage(page.mainFrame().contentsSize(),
            QImage.Format.Format_ARGB32);


    QPainter painter = new QPainter(qImage);

    page.mainFrame().render(painter);
    if (istransparent)
        makeTransparent(qImage);

    qImage.save(imageName);
    painter.end();


    qImage.dispose();

}

转储:

#
# An unexpected error has been detected by Java Runtime Environment:
#
#  SIGSEGV (0xb) at pc=0x03534417, pid=6123, tid=1902168976
#
# Java VM: OpenJDK Server VM (1.6.0-b09 mixed mode linux-x86)
# Problematic frame:
# C  [libQtWebKit.so.4+0x567417]
#
# If you would like to submit a bug report, please visit:
#   http://icedtea.classpath.org/bugzilla
# The crash happened outside the Java Virtual Machine in native code.
# See problematic frame for where to report the bug.
#

---------------  T H R E A D  ---------------

Current thread (0x717f3400):  JavaThread "Thread-8" [_thread_in_native, id=6147, stack(0x715bc000,0x7160d000)]

siginfo:si_signo=SIGSEGV: si_errno=0, si_code=1 (SEGV_MAPERR), si_addr=0xffffffff

Registers:
EAX=0x7160b550, EBX=0x03fd9bb8, ECX=0x7160b550, EDX=0x7160b560
ESP=0x7160b530, EBP=0x7160b578, ESI=0xffffffff, EDI=0x00000000
EIP=0x03534417, CR2=0xffffffff, EFLAGS=0x00210286

Top of Stack: (sp=0x7160b530)
0x7160b530:   71431488 7160b638 7160b578 03609f62
0x7160b540:   7160b568 03ca9673 717e3708 03609f3e
0x7160b550:   00000000 00000000 00000002 00000000
0x7160b560:   ffffffff 00000000 00000000 03fd9bb8
0x7160b570:   7160b59c 00000000 7160b648 0353420d
0x7160b580:   714312c8 7160b59c 7160b59c 7160b608
0x7160b590:   7160b59c 7160b608 71431520 7179ec08
0x7160b5a0:   00000000 00000000 00000000 00000000 

Instructions: (pc=0x03534417)
0x03534407:   4a 00 00 83 c4 0c 8b 7d d8 8b 75 e8 85 f6 74 0e
0x03534417:   8b 06 83 f8 01 0f 84 0e 05 00 00 48 89 06 83 ec 

Stack: [0x715bc000,0x7160d000],  sp=0x7160b530,  free space=317k
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
C  [libQtWebKit.so.4+0x567417]
C  [libQtWebKit.so.4+0x56720d]
C  [libQtWebKit.so.4+0x540a2e]
C  [libQtWebKit.so.4+0x540b08]
C  [libQtWebKit.so.4+0x7b4621]  _ZN9QWebFrame7setHtmlERK7QStringRK4QUrl+0x161
C  [libcom_trolltech_qt_webkit.so+0x241bd]  Java_com_trolltech_qt_webkit_QWebFrame__1_1qt_1setHtml_1String_1QUrl__JLjava_lang_String_2J+0x5d
v  ~BufferBlob::Interpreter
v  ~BufferBlob::Interpreter
v  ~BufferBlob::Interpreter
v  ~BufferBlob::StubRoutines (1)
V  [libjvm.so+0x2ffcf1]
V  [libjvm.so+0x485e79]
V  [libjvm.so+0x2fee1f]
V  [libjvm.so+0x5580c4]
V  [libjvm.so+0x48c1c8]
C  [libpthread.so.0+0x55ab]



---------------  P R O C E S S  ---------------

Java Threads: ( => current thread )
  0x71418800 JavaThread "DestroyJavaVM" [_thread_blocked, id=6124, stack(0xb7efc000,0xb7f4d000)]
  0x71417400 JavaThread "Thread-11" [_thread_in_native, id=6150, stack(0x713af000,0x71400000)]
  0x08871c00 JavaThread "Thread-10" [_thread_blocked, id=6149, stack(0x7151a000,0x7156b000)]
  0x08894c00 JavaThread "Thread-9" [_thread_blocked, id=6148, stack(0x7156b000,0x715bc000)]
=>0x717f3400 JavaThread "Thread-8" [_thread_in_native, id=6147, stack(0x715bc000,0x7160d000)]
  0x717ec400 JavaThread "Thread-7" [_thread_blocked, id=6146, stack(0x7160d000,0x7165e000)]
  0x717e5800 JavaThread "Thread-6" [_thread_blocked, id=6145, stack(0x7165e000,0x716af000)]
  0x717de800 JavaThread "Thread-5" [_thread_blocked, id=6144, stack(0x716af000,0x71700000)]
  0x717d8000 JavaThread "Thread-4" [_thread_blocked, id=6143, stack(0x7180d000,0x7185e000)]
  0x717d1400 JavaThread "Thread-3" [_thread_blocked, id=6142, stack(0x7185e000,0x718af000)]
  0x717c6000 JavaThread "Thread-2" [_thread_blocked, id=6141, stack(0x718af000,0x71900000)]
  0x71940800 JavaThread "Thread-0" daemon [_thread_blocked, id=6140, stack(0x71a6d000,0x71abe000)]
  0x087b3c00 JavaThread "Low Memory Detector" daemon [_thread_blocked, id=6138, stack(0x71b63000,0x71bb4000)]
  0x087b2000 JavaThread "CompilerThread1" daemon [_thread_blocked, id=6137, stack(0x71bb4000,0x71c35000)]
  0x087af800 JavaThread "CompilerThread0" daemon [_thread_blocked, id=6136, stack(0x71c35000,0x71cb6000)]
  0x087ae800 JavaThread "Signal Dispatcher" daemon [_thread_blocked, id=6135, stack(0x71cb6000,0x71d07000)]
  0x08791c00 JavaThread "Finalizer" daemon [_thread_blocked, id=6133, stack(0x71f07000,0x71f58000)]
  0x08790c00 JavaThread "Reference Handler" daemon [_thread_blocked, id=6132, stack(0x71f58000,0x71fa9000)]

Other Threads:
  0x0878d800 VMThread [stack: 0x71fa9000,0x7202a000] [id=6131]
  0x087b5400 WatcherThread [stack: 0x71ae2000,0x71b63000] [id=6139]

VM state:not at safepoint (normal execution)

VM Mutex/Monitor currently owned by a thread: None

Heap
 PSYoungGen      total 6144K, used 5044K [0xb1130000, 0xb1800000, 0xb7ef0000)
  eden space 5312K, 94% used [0xb1130000,0xb161d250,0xb1660000)
  from space 832K, 0% used [0xb1730000,0xb1730000,0xb1800000)
  to   space 832K, 0% used [0xb1660000,0xb1660000,0xb1730000)
 PSOldGen        total 56256K, used 0K [0x7a2f0000, 0x7d9e0000, 0xb1130000)
  object space 56256K, 0% used [0x7a2f0000,0x7a2f0000,0x7d9e0000)
 PSPermGen       total 16384K, used 4958K [0x722f0000, 0x732f0000, 0x7a2f0000)
  object space 16384K, 30% used [0x722f0000,0x727c7888,0x732f0000)

Dynamic libraries:
00101000-00108000 r-xp 00000000 fd:00 33719417   /lib/librt-2.5.so
00108000-00109000 r--p 00006000 fd:00 33719417   /lib/librt-2.5.so
00109000-0010a000 rw-p 00007000 fd:00 33719417   /lib/librt-2.5.so
00110000-00135000 r-xp 00000000 fd:00 33719421   /lib/libm-2.5.so
00135000-00136000 r--p 00024000 fd:00 33719421   /lib/libm-2.5.so
00136000-00137000 rw-p 00025000 fd:00 33719421   /lib/libm-2.5.so
00137000-0013d000 r-xp 00000000 fd:00 50202674   /usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0/jre/lib/i386/libzip.so
0013d000-0013e000 rw-p 00006000 fd:00 50202674   /usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0/jre/lib/i386/libzip.so
0013e000-0014d000 r-xp 00000000 fd:00 49706490   /usr/lib/libXext.so.6.4.0
0014d000-0014e000 rw-p 0000e000 fd:00 49706490   /usr/lib/libXext.so.6.4.0
0014e000-00150000 r-xp 00000000 fd:00 49706483   /usr/lib/libXau.so.6.0.0
00150000-00151000 rw-p 00001000 fd:00 49706483   /usr/lib/libXau.so.6.0.0
00151000-00156000 r-xp 00000000 fd:00 49706484   /usr/lib/libXdmcp.so.6.0.0
00156000-00157000 rw-p 00004000 fd:00 49706484   /usr/lib/libXdmcp.so.6.0.0
00157000-0015e000 r-xp 00000000 fd:00 49706492   /usr/lib/libXi.so.6.0.0
0015e000-0015f000 rw-p 00006000 fd:00 49706492   /usr/lib/libXi.so.6.0.0
0015f000-00161000 r-xp 00000000 fd:00 33719435   /lib/libcom_err.so.2.1
00161000-00162000 rw-p 00001000 fd:00 33719435   /lib/libcom_err.so.2.1
00163000-0017d000 r-xp 00000000 fd:00 33719413   /lib/ld-2.5.so
0017d000-0017e000 r--p 00019000 fd:00 33719413   /lib/ld-2.5.so
0017e000-0017f000 rw-p 0001a000 fd:00 33719413   /lib/ld-2.5.so
0017f000-00187000 rwxp 0017f000 00:00 0 
00187000-001bf000 rwxp 00187000 00:00 0 
001bf000-001e6000 r-xp 00000000 fd:00 49706481   /usr/lib/libfontconfig.so.1.1.0
001e6000-001ee000 rw-p 00027000 fd:00 49706481   /usr/lib/libfontconfig.so.1.1.0
001ee000-001f6000 r-xp 00000000 fd:00 49706508   /usr/lib/libkrb5support.so.0.1
001f6000-001f7000 rw-p 00007000 fd:00 49706508   /usr/lib/libkrb5support.so.0.1
001f7000-001f9000 r-xp 00000000 fd:00 33719431   /lib/libkeyutils-1.2.so
001f9000-001fa000 rw-p 00001000 fd:00 33719431   /lib/libkeyutils-1.2.so
001fc000-0020f000 r-xp 00000000 fd:00 33719428   /lib/libnsl-2.5.so
0020f000-00210000 r--p 00012000 fd:00 33719428   /lib/libnsl-2.5.so
00210000-00211000 rw-p 00013000 fd:00 33719428   /lib/libnsl-2.5.so
00211000-00213000 rw-p 00211000 00:00 0 
00213000-00232000 r-xp 00000000 fd:00 33719422   /lib/libexpat.so.0.5.0
00232000-00234000 rw-p 0001e000 fd:00 33719422   /lib/libexpat.so.0.5.0
00234000-00247000 r-xp 00000000 fd:00 14680099   /tmp/QtJambi_ananyas_i386_4.5.2_01_gcc-20090628-0950/plugins/codecs/libqkrcodecs.so
00247000-00248000 rw-p 00012000 fd:00 14680099   /tmp/QtJambi_ananyas_i386_4.5.2_01_gcc-20090628-0950/plugins/codecs/libqkrcodecs.so
00248000-0024e000 r-xp 00000000 fd:00 14680090   /tmp/QtJambi_ananyas_i386_4.5.2_01_gcc-20090628-0950/plugins/imageformats/libqgif.so
0024e000-0024f000 rw-p 00005000 fd:00 14680090   /tmp/QtJambi_ananyas_i386_4.5.2_01_gcc-20090628-0950/plugins/imageformats/libqgif.so
0024f000-00253000 r-xp 00000000 fd:00 33719430   /lib/libgthread-2.0.so.0.1200.3
00253000-00254000 rw-p 00003000 fd:00 33719430   /lib/libgthread-2.0.so.0.1200.3
00254000-00277000 r-xp 00000000 fd:00 14680097   /tmp/QtJambi_ananyas_i386_4.5.2_01_gcc-20090628-0950/plugins/codecs/libqcncodecs.so
00277000-00278000 rw-p 00022000 fd:00 14680097   /tmp/QtJambi_ananyas_i386_4.5.2_01_gcc-20090628-0950/plugins/codecs/libqcncodecs.so
00278000-00287000 r-xp 00000000 fd:00 33719432   /lib/libresolv-2.5.so
00287000-00288000 r--p 0000e000 fd:00 33719432   /lib/libresolv-2.5.so
00288000-00289000 rw-p 0000f000 fd:00 33719432   /lib/libresolv-2.5.so
00289000-0028b000 rw-p 00289000 00:00 0 
0028b000-0028e000 r-xp 00000000 fd:00 14680093   /tmp/QtJambi_ananyas_i386_4.5.2_01_gcc-20090628-0950/plugins/imageformats/libqsvg.so
0028e000-0028f000 rw-p 00003000 fd:00 14680093   /tmp/QtJambi_ananyas_i386_4.5.2_01_gcc-20090628-0950/plugins/imageformats/libqsvg.so
00290000-00296000 r-xp 00000000 fd:00 50236139   /usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0/jre/lib/i386/native_threads/libhpi.so
00296000-00297000 rw-p 00006000 fd:00 50236139   /usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0/jre/lib/i386/native_threads/libhpi.so
00297000-00373000 r-xp 00000000 fd:00 14647465   /tmp/QtJambi_ananyas_i386_4.5.2_01_gcc-20090628-0950/lib/libstdc++.so.6
00373000-00378000 rw-p 000dc000 fd:00 14647465   /tmp/QtJambi_ananyas_i386_4.5.2_01_gcc-20090628-0950/lib/libstdc++.so.6
00378000-0037d000 rw-p 00378000 00:00 0 
0037d000-003bd000 r-xp 00000000 fd:00 14647476   /tmp/QtJambi_ananyas_i386_4.5.2_01_gcc-20090628-0950/lib/libqtjambi.so
003bd000-003be000 rw-p 00040000 fd:00 14647476   /tmp/QtJambi_ananyas_i386_4.5.2_01_gcc-20090628-0950/lib/libqtjambi.so
003be000-00407000 r-xp 00000000 fd:00 14647475   /tmp/QtJambi_ananyas_i386_4.5.2_01_gcc-20090628-0950/lib/libphonon.so.4
00407000-00409000 rw-p 00049000 fd:00 14647475   /tmp/QtJambi_ananyas_i386_4.5.2_01_gcc-20090628-0950/lib/libphonon.so.4
00409000-0041f000 r-xp 00000000 fd:00 33719434   /lib/libselinux.so.1
0041f000-00421000 rw-p 00015000 fd:00 33719434   /lib/libselinux.so.1
00425000-0042e000 r-xp 00000000 fd:00 33718312   /lib/libnss_files-2.5.so
0042e000-0042f000 r--p 00008000 fd:00 33718312   /lib/libnss_files-2.5.so
0042f000-00430000 rw-p 00009000 fd:00 33718312   /lib/libnss_files-2.5.so
00430000-0047c000 r-xp 00000000 fd:00 14647485   /tmp/QtJambi_ananyas_i386_4.5.2_01_gcc-20090628-0950/lib/libcom_trolltech_qt_webkit.so
0047c000-0047e000 rw-p 0004b000 fd:00 14647485   /tmp/QtJambi_ananyas_i386_4.5.2_01_gcc-20090628-0950/lib/libcom_trolltech_qt_webkit.so
0049e000-004c0000 r-xp 00000000 fd:00 50202654   /usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0/jre/lib/i386/libjava.so
004c0000-004c2000 rw-p 00022000 fd:00 50202654   /usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0/jre/lib/i386/libjava.so

006f1000-007f0000 r-xp 00000000 fd:00 49706485   /usr/lib/libX11.so.6.2.0
007f0000-007f4000 rw-p 000ff000 fd:00 49706485   /usr/lib/libX11.so.6.2.0
00808000-00811000 rwxp 00808000 00:00 0 
00811000-008c8000 rwxp 00811000 00:00 0 
008d0000-008d2000 r-xp 00000000 fd:00 49807865   /usr/lib/gconv/UTF-16.so
008d2000-008d4000 rw-p 00001000 fd:00 49807865   /usr/lib/gconv/UTF-16.so
008d4000-008fe000 r-xp 00000000 fd:00 14680098   /tmp/QtJambi_ananyas_i386_4.5.2_01_gcc-20090628-0950/plugins/codecs/libqjpcodecs.so
008fe000-008ff000 rw-p 00029000 fd:00 14680098   /tmp/QtJambi_ananyas_i386_4.5.2_01_gcc-20090628-0950/plugins/codecs/libqjpcodecs.so
00915000-00921000 r-xp 00000000 fd:00 50202673   /usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0/jre/lib/i386/libverify.so
00921000-00922000 rw-p 0000b000 fd:00 50202673   /usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0/jre/lib/i386/libverify.so
00922000-0093e000 rwxp 00922000 00:00 0 
0093e000-00ada000 rwxp 0093e000 00:00 0 
00ada000-00b00000 r-xp 00000000 fd:00 14680100   /tmp/QtJambi_ananyas_i386_4.5.2_01_gcc-20090628-0950/plugins/codecs/libqtwcodecs.so
00b00000-00b01000 rw-p 00025000 fd:00 14680100   /tmp/QtJambi_ananyas_i386_4.5.2_01_gcc-20090628-0950/plugins/codecs/libqtwcodecs.so
00b01000-00b2e000 r-xp 00000000 fd:00 49706511   /usr/lib/libgssapi_krb5.so.2.2
00b2e000-00b2f000 rw-p 0002d000 fd:00 49706511   /usr/lib/libgssapi_krb5.so.2.2
00b33000-00c72000 r-xp 00000000 fd:00 33719414   /lib/libc-2.5.so
00c72000-00c73000 ---p 0013f000 fd:00 33719414   /lib/libc-2.5.so
00c73000-00c75000 r--p 0013f000 fd:00 33719414   /lib/libc-2.5.so
00c75000-00c76000 rw-p 00141000 fd:00 33719414   /lib/libc-2.5.so
00c76000-00c79000 rw-p 00c76000 00:00 0 
00c7b000-00c7e000 r-xp 00000000 fd:00 50236144   /usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0/jre/lib/i386/jli/libjli.so
00c7e000-00c7f000 rw-p 00003000 fd:00 50236144   /usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0/jre/lib/i386/jli/libjli.so
00ca4000-00ca6000 r-xp 00000000 fd:00 33719415   /lib/libdl-2.5.so
00ca6000-00ca7000 r--p 00001000 fd:00 33719415   /lib/libdl-2.5.so
00ca7000-00ca8000 rw-p 00002000 fd:00 33719415   /lib/libdl-2.5.so
00caa000-00cbd000 r-xp 00000000 fd:00 33719416   /lib/libpthread-2.5.so
00cbd000-00cbe000 r--p 00013000 fd:00 33719416   /lib/libpthread-2.5.so
00cbe000-00cbf000 rw-p 00014000 fd:00 33719416   /lib/libpthread-2.5.so
00cbf000-00cc1000 rw-p 00cbf000 00:00 0 
00cc3000-00cd5000 r-xp 00000000 fd:00 49706479   /usr/lib/libz.so.1.2.3
00cd5000-00cd6000 rw-p 00011000 fd:00 49706479   /usr/lib/libz.so.1.2.3
00cd6000-00e41000 r-xp 00000000 fd:00 14647477   /tmp/QtJambi_ananyas_i386_4.5.2_01_gcc-20090628-0950/lib/libcom_trolltech_qt_core.so
00e41000-00e49000 rw-p 0016b000 fd:00 14647477   /tmp/QtJambi_ananyas_i386_4.5.2_01_gcc-20090628-0950/lib/libcom_trolltech_qt_core.so
00e61000-00e62000 r-xp 00e61000 00:00 0          [vdso]
00e62000-01467000 r-xp 00000000 fd:00 50236143   /usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0/jre/lib/i386/server/libjvm.so
01467000-014b2000 rw-p 00604000 fd:00 50236143   /usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0/jre/lib/i386/server/libjvm.so
014b2000-018d2000 rw-p 014b2000 00:00 0 
018d2000-01b12000 r-xp 00000000 fd:00 14647466   /tmp/QtJambi_ananyas_i386_4.5.2_01_gcc-20090628-0950/lib/libQtCore.so.4
01b12000-01b1a000 rw-p 0023f000 fd:00 14647466   /tmp/QtJambi_ananyas_i386_4.5.2_01_gcc-20090628-0950/lib/libQtCore.so.4
01b1a000-01b1b000 rw-p 01b1a000 00:00 0 
01b1b000-02478000 r-xp 00000000 fd:00 14647467   /tmp/QtJambi_ananyas_i386_4.5.2_01_gcc-20090628-0950/lib/libQtGui.so.4
02478000-0249e000 rw-p 0095d000 fd:00 14647467   /tmp/QtJambi_ananyas_i386_4.5.2_01_gcc-20090628-0950/lib/libQtGui.so.4
0249e000-024a1000 rw-p 0249e000 00:00 0 
024a1000-02e78000 r-xp 00000000 fd:00 14647478   /tmp/QtJambi_ananyas_i386_4.5.2_01_gcc-20090628-0950/lib/libcom_trolltech_qt_gui.so
02e78000-02ea3000 rw-p 009d7000 fd:00 14647478   /tmp/QtJambi_ananyas_i386_4.5.2_01_gcc-20090628-0950/lib/libcom_trolltech_qt_gui.so
02ea3000-02ea6000 rw-p 02ea3000 00:00 0 
02ea6000-02fc9000 r-xp 00000000 fd:00 14647471   /tmp/QtJambi_ananyas_i386_4.5.2_01_gcc-20090628-0950/lib/libQtNetwork.so.4
02fc9000-02fcd000 rw-p 00123000 fd:00 14647471   /tmp/QtJambi_ananyas_i386_4.5.2_01_gcc-20090628-0950/lib/libQtNetwork.so.4
02fcd000-03fbe000 r-xp 00000000 fd:00 14647473   /tmp/QtJambi_ananyas_i386_4.5.2_01_gcc-20090628-0950/lib/libQtWebKit.so.4
03fbe000-04057000 rw-p 00ff0000 fd:00 14647473   /tmp/QtJambi_ananyas_i386_4.5.2_01_gcc-20090628-0950/lib/libQtWebKit.so.4
04057000-0405a000 rw-p 04057000 00:00 0 
0405a000-040ed000 r-xp 00000000 fd:00 49706510   /usr/lib/libkrb5.so.3.3
040ed000-040f0000 rw-p 00092000 fd:00 49706510   /usr/lib/libkrb5.so.3.3
040f0000-04115000 r-xp 00000000 fd:00 49706509   /usr/lib/libk5crypto.so.3.1
04115000-04116000 rw-p 00025000 fd:00 49706509   /usr/lib/libk5crypto.so.3.1
04116000-04151000 r-xp 00000000 fd:00 33719433   /lib/libsepol.so.1
04151000-04152000 rw-p 0003b000 fd:00 33719433   /lib/libsepol.so.1
04152000-0415c000 rw-p 04152000 00:00 0 
0415c000-04182000 r-xp 00000000 fd:00 14680089   /tmp/QtJambi_ananyas_i386_4.5.2_01_gcc-20090628-0950/plugins/imageformats/libqjpeg.so
04182000-04183000 rw-p 00025000 fd:00 14680089   /tmp/QtJambi_ananyas_i386_4.5.2_01_gcc-20090628-0950/plugins/imageformats/libqjpeg.so
04183000-041ce000 r-xp 00000000 fd:00 14680091   /tmp/QtJambi_ananyas_i386_4.5.2_01_gcc-20090628-0950/plugins/imageformats/libqmng.so
041ce000-041d0000 rw-p 0004b000 fd:00 14680091   /tmp/QtJambi_ananyas_i386_4.5.2_01_gcc-20090628-0950/plugins/imageformats/libqmng.so
04212000-0428f000 r-xp 00000000 fd:00 49706480   /usr/lib/libfreetype.so.6.3.10
0428f000-04292000 rw-p 0007d000 fd:00 49706480   /usr/lib/libfreetype.so.6.3.10
04294000-0429c000 r-xp 00000000 fd:00 49706486   /usr/lib/libXrender.so.1.3.0
0429c000-0429d000 rw-p 00007000 fd:00 49706486   /usr/lib/libXrender.so.1.3.0
0429f000-042c4000 r-xp 00000000 fd:00 49706482   /usr/lib/libpng12.so.0.10.0
042c4000-042c5000 rw-p 00024000 fd:00 49706482   /usr/lib/libpng12.so.0.10.0
042c7000-042cb000 r-xp 00000000 fd:00 49706494   /usr/lib/libXfixes.so.3.1.0
042cb000-042cc000 rw-p 00003000 fd:00 49706494   /usr/lib/libXfixes.so.3.1.0
042ce000-042d0000 r-xp 00000000 fd:00 49706491   /usr/lib/libXinerama.so.1.0.0
042d0000-042d1000 rw-p 00001000 fd:00 49706491   /usr/lib/libXinerama.so.1.0.0
042d3000-042d6000 r-xp 00000000 fd:00 49706493   /usr/lib/libXrandr.so.2.0.0
042d6000-042d7000 rw-p 00002000 fd:00 49706493   /usr/lib/libXrandr.so.2.0.0
042d9000-042e2000 r-xp 00000000 fd:00 49706495   /usr/lib/libXcursor.so.1.0.2
042e2000-042e3000 rw-p 00008000 fd:00 49706495   /usr/lib/libXcursor.so.1.0.2
042e5000-04382000 r-xp 00000000 fd:00 33719418   /lib/libglib-2.0.so.0.1200.3
04382000-04383000 rw-p 0009c000 fd:00 33719418   /lib/libglib-2.0.so.0.1200.3
043c6000-043dd000 r-xp 00000000 fd:00 49706499   /usr/lib/libICE.so.6.3.0
043dd000-043de000 rw-p 00016000 fd:00 49706499   /usr/lib/libICE.so.6.3.0
043de000-043e0000 rw-p 043de000 00:00 0 
0440b000-04416000 r-xp 00000000 fd:00 33718488   /lib/libgcc_s-4.1.2-20080825.so.1
04416000-04417000 rw-p 0000a000 fd:00 33718488   /lib/libgcc_s-4.1.2-20080825.so.1
04419000-04421000 r-xp 00000000 fd:00 49683188   /usr/lib/libSM.so.6.0.0
04421000-04422000 rw-p 00007000 fd:00 49683188   /usr/lib/libSM.so.6.0.0
04422000-04477000 r-xp 00000000 fd:00 14647470   /tmp/QtJambi_ananyas_i386_4.5.2_01_gcc-20090628-0950/lib/libQtSvg.so.4
04477000-04479000 rw-p 00054000 fd:00 14647470   /tmp/QtJambi_ananyas_i386_4.5.2_01_gcc-20090628-0950/lib/libQtSvg.so.4
04479000-044bd000 r-xp 00000000 fd:00 14647468   /tmp/QtJambi_ananyas_i386_4.5.2_01_gcc-20090628-0950/lib/libQtXml.so.4
044bd000-044bf000 rw-p 00043000 fd:00 14647468   /tmp/QtJambi_ananyas_i386_4.5.2_01_gcc-20090628-0950/lib/libQtXml.so.4
044bf000-0450c000 r-xp 00000000 fd:00 14680092   /tmp/QtJambi_ananyas_i386_4.5.2_01_gcc-20090628-0950/plugins/imageformats/libqtiff.so
0450c000-0450f000 rw-p 0004d000 fd:00 14680092   /tmp/QtJambi_ananyas_i386_4.5.2_01_gcc-20090628-0950/plugins/imageformats/libqtiff.so
04569000-047a9000 rwxp 04569000 00:00 0 
047a9000-07569000 rwxp 047a9000 00:00 0 
07a46000-07a89000 r-xp 00000000 fd:00 33719437   /lib/libssl.so.0.9.8e
07a89000-07a8d000 rw-p 00042000 fd:00 33719437   /lib/libssl.so.0.9.8e
07ecb000-07ff5000 r-xp 00000000 fd:00 33719436   /lib/libcrypto.so.0.9.8e
07ff5000-08008000 rw-p 00129000 fd:00 33719436   /lib/libcrypto.so.0.9.8e
08008000-0800c000 rw-p 08008000 00:00 0 
08048000-08051000 r-xp 00000000 fd:00 51185590   /usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0/bin/java
08051000-08053000 rw-p 00008000 fd:00 51185590   /usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0/bin/java
086fe000-08b7f000 rw-p 086fe000 00:00 0          [heap]

63000000-63032000 rw-p 63000000 00:00 0 
63032000-64666000 r--p 00000000 fd:00 50005518   /usr/share/fonts/Arial Unicode.ttf
64666000-64698000 rw-p 64666000 00:00 0 
64698000-65ccc000 r--p 00000000 fd:00 50005518   /usr/share/fonts/Arial Unicode.ttf
65ccc000-67300000 r--p 00000000 fd:00 50005518   /usr/share/fonts/Arial Unicode.ttf
67300000-673f3000 rw-p 67300000 00:00 0 
673f3000-67400000 ---p 673f3000 00:00 0 
6742a000-6745c000 rw-p 6742a000 00:00 0 
6745c000-67484000 r--p 00000000 fd:00 50299156   /usr/share/fonts/liberation/LiberationSans-Regular.ttf
67484000-674ac000 r--p 00000000 fd:00 50299156   /usr/share/fonts/liberation/LiberationSans-Regular.ttf
674ac000-674de000 rw-p 674ac000 00:00 0 
674de000-68b12000 r--p 00000000 fd:00 50005518   /usr/share/fonts/Arial Unicode.ttf
68b12000-68b44000 rw-p 68b12000 00:00 0 
68b44000-6a178000 r--p 00000000 fd:00 50005518   /usr/share/fonts/Arial Unicode.ttf
6a178000-6a1a0000 r--p 00000000 fd:00 50299156   /usr/share/fonts/liberation/LiberationSans-Regular.ttf
6a1a0000-6a1c8000 r--p 00000000 fd:00 50299156   /usr/share/fonts/liberation/LiberationSans-Regular.ttf
6a1c8000-6a1f0000 r--p 00000000 fd:00 50299156   /usr/share/fonts/liberation/LiberationSans-Regular.ttf
6a1f0000-6a222000 rw-p 6a1f0000 00:00 0 
6a222000-6b856000 r--p 00000000 fd:00 50005518   /usr/share/fonts/Arial Unicode.ttf
6b856000-6b87e000 r--p 00000000 fd:00 50299156   /usr/share/fonts/liberation/LiberationSans-Regular.ttf
6b87e000-6b8b0000 rw-p 6b87e000 00:00 0 
6b8b0000-6cee4000 r--p 00000000 fd:00 50005518   /usr/share/fonts/Arial Unicode.ttf
6cee4000-6cf0c000 r--p 00000000 fd:00 50299156   /usr/share/fonts/liberation/LiberationSans-Regular.ttf
6cf0c000-6cf3e000 rw-p 6cf0c000 00:00 0 
6cf3e000-6e572000 r--p 00000000 fd:00 50005518   /usr/share/fonts/Arial Unicode.ttf
6e572000-6e59a000 r--p 00000000 fd:00 50299156   /usr/share/fonts/liberation/LiberationSans-Regular.ttf
6e59a000-6e5cc000 rw-p 6e59a000 00:00 0 
6e5cc000-6fc00000 r--p 00000000 fd:00 50005518   /usr/share/fonts/Arial Unicode.ttf
6fc00000-6fcfe000 rw-p 6fc00000 00:00 0 
6fcfe000-6fd00000 ---p 6fcfe000 00:00 0 
6fd21000-6fd53000 rw-p 6fd21000 00:00 0 
6fd53000-71387000 r--p 00000000 fd:00 50005518   /usr/share/fonts/Arial Unicode.ttf
71387000-713af000 r--p 00000000 fd:00 50299156   /usr/share/fonts/liberation/LiberationSans-Regular.ttf
713af000-713b2000 ---p 713af000 00:00 0 
718af000-718b2000 ---p 718af000 00:00 0 
718b2000-71a00000 rw-p 718b2000 00:00 0 
71a25000-71a4d000 r--p 00000000 fd:00 50299156   /usr/share/fonts/liberation/LiberationSans-Regular.ttf
71a4d000-71a4f000 r--s 00000000 fd:00 22380898   /var/cache/fontconfig/87f5e051180a7a75f16eb6fe7dbd3749-x86.cache-2
71a4f000-71a55000 r--s 00000000 fd:00 22381243   /var/cache/fontconfig/b79f3aaa7d385a141ab53ec885cc22a8-x86.cache-2
71a55000-71a58000 r--s 00000000 fd:00 22380900   /var/cache/fontconfig/b67b32625a2bb51b023d3814a918f351-x86.cache-2
71a58000-71a5e000 r--s 00000000 fd:00 22381238   /var/cache/fontconfig/7ddba6133ef499da58de5e8c586d3b75-x86.cache-2
71a5e000-71a60000 r--s 00000000 fd:00 22380598   /var/cache/fontconfig/e3ead4b767b8819993a6fa3ae306afa9-x86.cache-2
71a60000-71a68000 r--s 00000000 fd:00 22380899   /var/cache/fontconfig/e19de935dec46bbf3ed114ee4965548a-x86.cache-2
71a68000-71a6d000 r--s 00000000 fd:00 22381259   /var/cache/fontconfig/beeeeb3dfe132a8a0633a017c99ce0c0-x86.cache-2
71a6d000-71a70000 ---p 71a6d000 00:00 0 
71a70000-71abe000 rw-p 71a70000 00:00 0 
71abe000-71ae2000 r--s 0027e000 fd:00 29590341   /home/ananyas/workspace/test/qtjambi-4.5.2_01.jar
71ae2000-71ae3000 ---p 71ae2000 00:00 0 

71faa000-7205d000 rw-p 71faa000 00:00 0 
7205d000-721ee000 r--s 033e8000 fd:00 50169494   /usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0/jre/lib/rt.jar
721ee000-721ef000 ---p 721ee000 00:00 0 

b1800000-b7ef0000 rwxp b1800000 00:00 0 
b7ef0000-b7ef2000 r--s 00000000 fd:00 33820061   /home/ananyas/.fontconfig/4335ee21c601b2d674941f9baf912a1f-x86.cache-2
b7ef2000-b7ef4000 r--s 00000000 fd:00 33820048   /home/ananyas/.fontconfig/3830d5c3ddfd5cd38a049b759396e72e-x86.cache-2
b7ef4000-b7efb000 r--s 00000000 fd:00 49807894   /usr/lib/gconv/gconv-modules.cache
b7efb000-b7efc000 r--s 014b7000 fd:00 29590344   /home/ananyas/workspace/test/qtjambi-linux32-gcc-4.5.2_01.jar
b7efc000-b7eff000 ---p b7efc000 00:00 0 
b7eff000-b7f4f000 rw-p b7eff000 00:00 0 
b7f4f000-b7f53000 r--s 00079000 fd:00 50169485   /usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0/jre/lib/jsse.jar
b7f53000-b7f5b000 r--s 00061000 fd:00 50202633   /usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0/jre/lib/ext/gnome-java-bridge.jar
b7f5b000-b7f63000 rw-s 00000000 fd:00 14647501   /tmp/hsperfdata_ananyas/6123

bfd62000-bfd77000 rw-p bffea000 00:00 0          [stack]

VM Arguments:
java_command: base.Test
Launcher Type: SUN_STANDARD

Environment Variables:
PATH=/usr/local/Trolltech/Qt-4.6.2/bin:/usr/lib/qt-3.3/bin:/usr/kerberos/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/y/bin:/usr/local/bin:/usr/bin:/bin:/usr/X11R6/bin:/home/ananyas/bin
USERNAME=ananyas
LD_LIBRARY_PATH=/usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0/jre/lib/i386/server:/usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0/jre/lib/i386:/usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0/jre/../lib/i386:/usr/lib/xulrunner-1.9
SHELL=/usr/local/bin/bash
DISPLAY=:0.0

Signal Handlers:
SIGSEGV: [libjvm.so+0x598c80], sa_mask[0]=0x7ffbfeff, sa_flags=0x10000004
SIGBUS: [libjvm.so+0x598c80], sa_mask[0]=0x7ffbfeff, sa_flags=0x10000004
SIGFPE: [libjvm.so+0x4870b0], sa_mask[0]=0x7ffbfeff, sa_flags=0x10000004
SIGPIPE: [libjvm.so+0x4870b0], sa_mask[0]=0x7ffbfeff, sa_flags=0x10000004
SIGXFSZ: [libjvm.so+0x4870b0], sa_mask[0]=0x7ffbfeff, sa_flags=0x10000004
SIGILL: [libjvm.so+0x4870b0], sa_mask[0]=0x7ffbfeff, sa_flags=0x10000004
SIGUSR1: SIG_DFL, sa_mask[0]=0x00000000, sa_flags=0x00000000
SIGUSR2: [libjvm.so+0x489970], sa_mask[0]=0x00000004, sa_flags=0x10000004
SIGHUP: [libjvm.so+0x488680], sa_mask[0]=0x7ffbfeff, sa_flags=0x10000004
SIGINT: [libjvm.so+0x488680], sa_mask[0]=0x7ffbfeff, sa_flags=0x10000004
SIGTERM: [libjvm.so+0x488680], sa_mask[0]=0x7ffbfeff, sa_flags=0x10000004
SIGQUIT: [libjvm.so+0x488680], sa_mask[0]=0x7ffbfeff, sa_flags=0x10000004


---------------  S Y S T E M  ---------------

OS:Red Hat Enterprise Linux Server release 5.4 (Tikanga)

uname:Linux 2.6.18-164.el5PAE #1 SMP Tue Aug 18 15:59:11 EDT 2009 i686
libc:glibc 2.5 NPTL 2.5 
rlimit: STACK 10240k, CORE 0k, NPROC 72704, NOFILE 1024, AS infinity
load average:0.41 0.22 0.13

CPU:total 2 (2 cores per cpu, 1 threads per core) family 6 model 7 stepping 10, cmov, cx8, fxsr, mmx, sse, sse2, sse3, ssse3

Memory: 4k page, physical 4045828k(1469000k free), swap 2097144k(2095140k free)

vm_info: OpenJDK Server VM (1.6.0-b09) for linux-x86 JRE (1.6.0-b09), built on Aug  5 2009 11:14:38 by "mockbuild" with gcc 4.1.2 20080704 (Red Hat 4.1.2-44)

time: Mon Aug 22 03:26:44 2011
elapsed time: 1 seconds

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

我将 QWebPage 的新实例传递给每个线程 MyClass 包含 imageGenerator()

.....in main().....
QWepPage page = new QWebPage();
MyClass m = new MyClass();
QThread thread = new QThread(m)

page.moveToThread(thread);

thread.start();
.....

最佳答案

QWebPage 类不是线程安全的,因为除其他外,它在内部使用 QPixmapQStyle...渲染和这些类在主线程之外无法安全使用。

关于java - QtWebkit 多线程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7146510/

相关文章:

java - Android 应用程序在 Play 商店发布后崩溃?

java - 基于阿拉伯语 desc 的 map 排序无法使用 java 正常工作

c - C 中的线程加工错误?

ios - 串行队列(主线程除外)代码是否在主线程上执行?

c++ - 解密图像与原始图像不同

c++ - QTreeWidget editItem 失败,出现 "edit: editing failed"

java - 使用 Spark 和 Java 进行分层抽样

java - PHP 相当于 Java 的 Character.getNumericValue(char c)?

java - 使用执行器创建消息监听器池

Qt: SIGNAL, SLOT 宏声明