CIn - Centro de Informática UFPE

Eventos Relacionados

Defesa de Dissertação de Mestrado - Nº 1.185: "An Empirical Study on the Usage of Java Concurrent Programming Constructs"

O aluno Weslley Silva Torres irá defender seu trabalho no dia 20 de agosto, às 10h, na Sala D220 Início: 20/08/2012 às 10:00 Término: 20/08/2012 às 12:00 Local: Sala D220

Pós-Graduação em Ciência da Computação – UFPE
Defesa de Dissertação de Mestrado Nº 1.185
Aluno: Weslley Silva Torres
Orientador: Prof. Fernando José Castor de Lima Filho
Co-orientador: Prof. Roberto Souto Maior de Barros
Título: An Empirical Study on the Usage of Java Concurrent Programming Constructs
Data: 20/08/2012
Hora/Local: 10:00h – Sala D220
Banca Examinadora:
Prof. Sergio Castelo Branco Soares (UFPE / CIn)
Prof. Christina von Flach Garcia Chavez (UFBA / Departamento de Ciência da Computação)
Prof.     Fernando José Castor de Lima Filho (UFPE / CIn)
In both academia and industry, there is a strong belief that multicore technology will radically change the way software is built since, to exploit multicore machines, applications need to be able to leverage concurrency and parallelism. However, little is known about the current state of the practice of software development, in terms of usage of concurrent and parallel programming constructs. In this work we address this problem. We present an empirical study whose goal is to establish the current state of the usage of concurrent programming constructs in real Java applications. We have analyzed 2257 stable and mature Java projects comprising more than 500 million lines of code from SourceForge, a large-scale Java open source code repository. We have studied the usage of concurrent programming constructs in the recent versions of these applications and also how usage has evolved along time. Our study presents a number of interesting findings, for example: (I) We found that more than 70% of the lastest versions of the downloaded projects either explicitly create threads or employ some concurrency control mechanism; (II) More than half of these projects exhibit at least 48 synchronized methods and three implementations of the Runnable interface per 100KLoC, which means that not only concurrent programming constructs are often used but they are also employed intensively; (III) The adoption of the java.util.concurrent library is only moderate (less than 23% of the concurrent projects employ it) but large projects exhibit a tendency to use synchronized blocks less frequently and atomic data types more frequently; (IV) data structures that are efficient and thread-safe,such as ConcurrentHashMap, are not yet widely used, even though adoption overhead is very low and they have have good performance.
Palavras-chave: Java; Concurrency; Software Evolution; OSS;
  • © Centro de Informática UFPE - Todos os direitos reservados
    Tel +55 81 2126.8430 - Cidade Universitária - 50740-560 - Recife/PE
Plano4 Consultoria Web