@@ -9,7 +9,7 @@ msgstr ""
9
9
"Project-Id-Version : Python 3.8\n "
10
10
"Report-Msgid-Bugs-To : \n "
11
11
"POT-Creation-Date : 2019-05-06 11:59-0400\n "
12
- "PO-Revision-Date : 2020-05-10 11:01 +0100\n "
12
+ "PO-Revision-Date : 2020-05-10 12:31 +0100\n "
13
13
"Language-Team : python-doc-es\n "
14
14
"MIME-Version : 1.0\n "
15
15
"Content-Type : text/plain; charset=UTF-8\n "
@@ -361,54 +361,72 @@ msgid ""
361
361
"For Unix variants there are several solutions. It's straightforward to do "
362
362
"this using curses, but curses is a fairly large module to learn."
363
363
msgstr ""
364
+ "Para variantes Unix hay varias soluciones. Lo más directo es hacerlo usando "
365
+ "cursores, pero curses es un módulo bastante amplio para aprenderlo."
364
366
365
367
#: ../Doc/faq/library.rst:237
366
368
msgid "Threads"
367
- msgstr ""
369
+ msgstr "Hilos "
368
370
369
371
#: ../Doc/faq/library.rst:240
370
372
msgid "How do I program using threads?"
371
- msgstr ""
373
+ msgstr "¿Cómo programo usando hilos? "
372
374
373
375
#: ../Doc/faq/library.rst:242
374
376
msgid ""
375
377
"Be sure to use the :mod:`threading` module and not the :mod:`_thread` "
376
378
"module. The :mod:`threading` module builds convenient abstractions on top of "
377
379
"the low-level primitives provided by the :mod:`_thread` module."
378
380
msgstr ""
381
+ "Asegúrese de usar el módulo :mod:`threading` y no el módulo :mod:`_thread`. "
382
+ "El módulo :mod:`threading` construye abstracciones convenientes sobre las "
383
+ "primitivas de bajo nivel proporcionadas por el módulo :mod:`_thread`."
379
384
380
385
#: ../Doc/faq/library.rst:246
381
386
msgid ""
382
387
"Aahz has a set of slides from his threading tutorial that are helpful; see "
383
388
"http://www.pythoncraft.com/OSCON2001/."
384
389
msgstr ""
390
+ "Aahz tiene un conjunto de transparencias sobre su tutoría de hilos que es "
391
+ "útil: vea http://www.pythoncraft.com/OSCON2001/."
385
392
386
393
#: ../Doc/faq/library.rst:251
387
394
msgid "None of my threads seem to run: why?"
388
- msgstr ""
395
+ msgstr "Ninguno de mis hilos parece funcionar: ¿por qué? "
389
396
390
397
#: ../Doc/faq/library.rst:253
391
398
msgid ""
392
399
"As soon as the main thread exits, all threads are killed. Your main thread "
393
400
"is running too quickly, giving the threads no time to do any work."
394
401
msgstr ""
402
+ "Tan pronto como el hilo principal termine, se matan todos los hilos. Su hilo "
403
+ "principal está corriendo demasiado rápido, sin dar tiempo a los hilos para "
404
+ "hacer algún trabajo."
395
405
396
406
#: ../Doc/faq/library.rst:256
397
407
msgid ""
398
408
"A simple fix is to add a sleep to the end of the program that's long enough "
399
409
"for all the threads to finish::"
400
410
msgstr ""
411
+ "Una solución sencilla es añadir un *sleep* al final del programa que sea "
412
+ "suficientemente largo para que todos los hilos terminen::"
401
413
402
414
#: ../Doc/faq/library.rst:271
403
415
msgid ""
404
416
"But now (on many platforms) the threads don't run in parallel, but appear to "
405
417
"run sequentially, one at a time! The reason is that the OS thread scheduler "
406
418
"doesn't start a new thread until the previous thread is blocked."
407
419
msgstr ""
420
+ "Por ahora (en muchas plataformas) los hilos no corren en paralelo, pero "
421
+ "parece que corren secuencialmente, ¡uno a la vez! La razón es que el "
422
+ "planificador de hilos del sistema operativo no inicia un nuevo hilo hasta "
423
+ "que el hilo anterior está bloqueado."
408
424
409
425
#: ../Doc/faq/library.rst:275
410
426
msgid "A simple fix is to add a tiny sleep to the start of the run function::"
411
427
msgstr ""
428
+ "Una solución sencilla es añadir un pequeño *sleep* al comienzo de la función "
429
+ "run::"
412
430
413
431
#: ../Doc/faq/library.rst:288
414
432
msgid ""
@@ -418,16 +436,23 @@ msgid ""
418
436
"the queue when it finishes, and let the main thread read as many tokens from "
419
437
"the queue as there are threads."
420
438
msgstr ""
439
+ "En vez de intentar adivinar un valor de retardo adecuado para :func:`time."
440
+ "sleep`, es mejor usar algún tipo de mecanismo de semáforo. Una idea es usar "
441
+ "el módulo :mod:`queue` para crear un objeto cola, permitiendo que cada hilo "
442
+ "añada un *token* a la cola cuando termine, y permitiendo al hilo principal "
443
+ "leer tantos tokens de la cola como hilos haya."
421
444
422
445
#: ../Doc/faq/library.rst:296
423
446
msgid "How do I parcel out work among a bunch of worker threads?"
424
- msgstr ""
447
+ msgstr "¿Cómo puedo dividir trabajo entre un grupo de hilos? "
425
448
426
449
#: ../Doc/faq/library.rst:298
427
450
msgid ""
428
451
"The easiest way is to use the new :mod:`concurrent.futures` module, "
429
452
"especially the :mod:`~concurrent.futures.ThreadPoolExecutor` class."
430
453
msgstr ""
454
+ "La manera más fácil es usar el nuevo módulo :mod:`concurrent.futures`, "
455
+ "especialmente la clase :mod:`~concurrent.futures.ThreadPoolExecutor`."
431
456
432
457
#: ../Doc/faq/library.rst:301
433
458
msgid ""
@@ -438,24 +463,33 @@ msgid ""
438
463
"``.get()`` method to return them. The class will take care of the locking "
439
464
"necessary to ensure that each job is handed out exactly once."
440
465
msgstr ""
466
+ "O, si quiere tener un control más preciso sobre el algoritmo de despacho, "
467
+ "puede escribir su propia lógica manualmente. Use el módulo :mod:`queue` para "
468
+ "crear una cola que contenga una lista de trabajos. La clase :class:`~queue."
469
+ "Queue` mantiene una lista de objetos y tiene un método ``.put(obj)`` que "
470
+ "añade elementos a la cola y un método ``.get()`` que los devuelve. Esta "
471
+ "clase se encargará de los bloqueos necesarios para asegurar que cada trabajo "
472
+ "se reparte exactamente una vez."
441
473
442
474
#: ../Doc/faq/library.rst:308
443
475
msgid "Here's a trivial example::"
444
- msgstr ""
476
+ msgstr "Aquí hay un ejemplo trivial:: "
445
477
446
478
#: ../Doc/faq/library.rst:346
447
479
msgid "When run, this will produce the following output:"
448
- msgstr ""
480
+ msgstr "Cuando se ejecute, esto producirá la siguiente salida: "
449
481
450
482
#: ../Doc/faq/library.rst:364
451
483
msgid ""
452
484
"Consult the module's documentation for more details; the :class:`~queue."
453
485
"Queue` class provides a featureful interface."
454
486
msgstr ""
487
+ "Consulte la documentación del módulo para más detalles; la clase :class:"
488
+ "`~queue.Queue` proporciona una interfaz llena de características."
455
489
456
490
#: ../Doc/faq/library.rst:369
457
491
msgid "What kinds of global value mutation are thread-safe?"
458
- msgstr ""
492
+ msgstr "¿Qué tipos de mutación de valores globales son *thread-safe*? "
459
493
460
494
#: ../Doc/faq/library.rst:371
461
495
msgid ""
@@ -466,6 +500,13 @@ msgid ""
466
500
"instruction and therefore all the C implementation code reached from each "
467
501
"instruction is therefore atomic from the point of view of a Python program."
468
502
msgstr ""
503
+ "Un :term:`global interpreter lock` (GIL) se usa internamente para asegurar "
504
+ "que sólo un hilo correo a la vez en la VM de Python. En general, Python "
505
+ "ofrece cambiar entre hilos sólo en instrucciones bytecode; la frecuencia con "
506
+ "la que cambia se puede fijar vía :func:`sys.setswitchinterval`. Cada "
507
+ "instrucción bytecode y por lo tanto toda la implementación de código C "
508
+ "alcanzada por cada instrucción es atómica desde el punto de vista de un "
509
+ "programa Python."
469
510
470
511
#: ../Doc/faq/library.rst:378
471
512
msgid ""
@@ -474,16 +515,23 @@ msgid ""
474
515
"shared variables of built-in data types (ints, lists, dicts, etc) that "
475
516
"\" look atomic\" really are."
476
517
msgstr ""
518
+ "En teoría, esto significa que una cuenta exacta requiere de un conocimiento "
519
+ "exacto de la implementación en bytecode de la PVM. En la práctica, esto "
520
+ "significa que las operaciones entre variables compartidas de tipos de datos "
521
+ "*built-in* (enteros, listas, diccionarios, etc.) que “parecen atómicas” "
522
+ "realmente lo son."
477
523
478
524
#: ../Doc/faq/library.rst:383
479
525
msgid ""
480
526
"For example, the following operations are all atomic (L, L1, L2 are lists, "
481
527
"D, D1, D2 are dicts, x, y are objects, i, j are ints)::"
482
528
msgstr ""
529
+ "Por ejemplo, las siguientes operaciones son todas atómicas (L, L1, L2 son "
530
+ "listas, D, D1, D2 son diccionarios, x, y son objetos, i, j son enteros)::"
483
531
484
532
#: ../Doc/faq/library.rst:398
485
533
msgid "These aren't::"
486
- msgstr ""
534
+ msgstr "Estas no lo son:: "
487
535
488
536
#: ../Doc/faq/library.rst:405
489
537
msgid ""
@@ -492,10 +540,15 @@ msgid ""
492
540
"affect things. This is especially true for the mass updates to dictionaries "
493
541
"and lists. When in doubt, use a mutex!"
494
542
msgstr ""
543
+ "Las operaciones que reemplazan otros objetos pueden invocar el método :meth:"
544
+ "`__del__` de esos otros objetos cuando su número de referencias alcance "
545
+ "cero, y eso puede afectar a otras cosas. Esto es especialmente cierto para "
546
+ "las actualizaciones en masa de diccionarios y listas. Cuando se esté en "
547
+ "duda, ¡use un mutex!"
495
548
496
549
#: ../Doc/faq/library.rst:412
497
550
msgid "Can't we get rid of the Global Interpreter Lock?"
498
- msgstr ""
551
+ msgstr "¿Podemos deshacernos del *Global Interpreter Lock*? "
499
552
500
553
#: ../Doc/faq/library.rst:416
501
554
msgid ""
@@ -504,6 +557,11 @@ msgid ""
504
557
"multi-threaded Python program effectively only uses one CPU, due to the "
505
558
"insistence that (almost) all Python code can only run while the GIL is held."
506
559
msgstr ""
560
+ "El :term:`global interpreter lock` (GIL) se percibe a menudo como un "
561
+ "obstáculo en el desarrollo de Python sobre máquinas servidoras finales de "
562
+ "múltiples procesadores, porque un programa Python multihilo efectivamente "
563
+ "sólo usa una CPU, debido a la exigencia de que (casi) todo el código Python "
564
+ "sólo puede correr mientras el GIL esté activado."
507
565
508
566
#: ../Doc/faq/library.rst:421
509
567
msgid ""
@@ -516,6 +574,14 @@ msgid ""
516
574
"due to the amount of fine-grained locking necessary to compensate for the "
517
575
"removal of the GIL."
518
576
msgstr ""
577
+ "En los días de Python 1.5, Greg Stein implementó de hecho un conjunto amplio "
578
+ "de parches (los parches “libres de hilo”) que eliminaba el GIL y lo "
579
+ "reemplazaba con un bloqueo de grano fino. Adam Olsen hizo recientemente un "
580
+ "experimento similar con su proyecto `python-safethread <https://code.google."
581
+ "com/archive/p/python-safethread>`_. Desafortunadamente, ambos experimentos "
582
+ "exhibieron una aguda caída en el rendimiento (al menos del 30% o más baja), "
583
+ "debido a la cantidad de bloqueos de grano fino necesarios para compensar la "
584
+ "eliminación del GIL."
519
585
520
586
#: ../Doc/faq/library.rst:429
521
587
msgid ""
@@ -527,6 +593,13 @@ msgid ""
527
593
"module provides a lower-level API in case you want more control over "
528
594
"dispatching of tasks."
529
595
msgstr ""
596
+ "¡Esto no significa que no pueda hacer buen uso de Python en máquinas de "
597
+ "múltiples CPU! Usted sólo tiene que ser creativo a la hora de dividir el "
598
+ "trabajo entre múltiples *procesos* en vez de entre múltiples *hilos*. La "
599
+ "clase :class:`~concurrent.futures.ProcessPoolExecutor` del nuevo módulo :mod:"
600
+ "`concurrent.futures` proporciona una manera sencilla de hacer esto; el "
601
+ "módulo :mod:`multiprocessing` proporciona una API de bajo nivel en caso de "
602
+ "que se quiera tener un mayor control sobre el despacho de las tareas."
530
603
531
604
#: ../Doc/faq/library.rst:437
532
605
msgid ""
@@ -536,6 +609,11 @@ msgid ""
536
609
"work done. Some standard library modules such as :mod:`zlib` and :mod:"
537
610
"`hashlib` already do this."
538
611
msgstr ""
612
+ "El uso sensato de extensiones C también ayudará; si usa una extensión C para "
613
+ "ejecutar una tarea que consume mucho tiempo, la extensión puede liberar al "
614
+ "GIL mientras el hilo de ejecución esté en el código C y permite a otros "
615
+ "hilos hacer algún trabajo. Algunos módulos de la librería estándar tales "
616
+ "como :mod:`zlib` y :mod:`hashlib` ya lo hacen."
539
617
540
618
#: ../Doc/faq/library.rst:443
541
619
msgid ""
0 commit comments